- - PR -
Domに関する処理について
1
| 投稿者 | 投稿内容 | ||||||||
|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2003-06-25 00:01
XMLをDOMで処理する場合、いろいろなやりかたがあると知り
みなさんがどのようにされているのか知りたく書き込ませていただきました。 http://www-6.ibm.com/jp/developerworks/xml/010316/j_x-jaxp.html に次のようなことが書かれていました。 「JAXP の目的は、 パーサーを扱う際にベンダー独立性を実現することです。 JAXP を利用して、同じコードを Sun の XML パーサー、 Apache の Xerces パーサー、 または Oracle の XML パーサーで処理できるのです。 Sun のクラスだけに固定するのは良くありません。 JAXP の目的そのものに反します。」 しかし、本などを探しているとSunのCrimsonに依存する XMLDocumentクラスを使っているものが多くありました。 Domに関する処理、特にファイルなどへの書き出しは やはりJAXPを用いた方がいいのでしょうか? みなさんの意見をお聞かせいただければとおもいます。 よろしくお願いいたします。 | ||||||||
|
投稿日時: 2003-06-25 09:10
こんにちは。
最近はCrimsonよりもXercesの方が主流になりつつあるように感じますし、 今後またどうなるかというのも予想しきれるものではありません。 JDOMなど独自の仕様を使うのも一つの手だとは思いますがやはり JAXPを用いた方が将来の変化に対応しやすいと僕は感じています。 僕もこのあたりは他の方の意見を聞いてみたいと思っていました。 | ||||||||
|
投稿日時: 2003-06-25 10:05
こんにちは。
私はJAXPを使うようにしています。 ベタにCrimsonなどのオブジェクトを操作してしまうと、 パーサの変更を行ったときにプログラムを変更しなければ ならなくなります。 それと比較して、実際に使うパーサがCrimsonでもXercesでも、 JAXPを使っていれば、同じプログラムで 処理ができるので、便利だなぁと思っているからなんですけど。 | ||||||||
|
投稿日時: 2003-06-25 10:35
こんにちは。Wataです。
これはJAXPのような標準APIを使っているときのメリットですよね。 でも、各パーザによって微妙に動作の異なる部分があるので 思わぬ落とし穴にはまることがあります。 たとえば、CrimsonとXercesでは以下のコードを実行したときに 違いが出ます。
Crimsonでは attr="null"と表示され、 Xercesでは、attr="" となります。 この問題はさらにXalanでtransform使用としたときに顕著化され、 CrimsonではNullPointerExceptionが発生してしまいます。 #クラスパスの設定ミスからXerces, Crimson, Oracleのすべてのパーザを #使う機会に恵まれました (^^; #見事にはまりました。 隣と動作が違うのはナゼ〜 って #ちなみにOracleも上のはnullになります。他にも違いが何かあったような。 | ||||||||
|
投稿日時: 2003-06-25 10:50
Wataさん こんにちは
うへぇ。。。そういうのがあるんですね。 私はXercesしか使っていないので、まだそういったことが 起きてないんですが、、、。 ユニットテストの出番って感じがしますね。 [ メッセージ編集済み 編集者: latte 編集日時 2003-06-25 10:51 ] | ||||||||
|
投稿日時: 2003-06-25 11:44
いろいろな問題があるんですねぇー。
今までの書き込みを拝見させていただいていると JAXPを利用されている方が多いようですがJAXPで ファイルへの書き出しなどがWeb上の情報でないので 自分はなかなか理解できず困っています・・。 以前のスレッドで情報をいただいて参考にさせていただいたのですが まだまだ理解できていません。 ファイルへの書き出しについて良い文献をご存知の 方がいらっしゃったらご指導お願いいたします。 | ||||||||
1
