• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:改行がノード?(JAXP))

改行を含むxmlファイルのノード取得についての問題

このQ&Aのポイント
  • JAXPを使ってxmlファイルのノードを取得する際、改行が正しく取得されない問題が発生しています。
  • 具体的には、<name>ノードの後に属性ノードであるtypeが来るはずですが、取得されません。
  • この問題について、解決方法を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • aton
  • ベストアンサー率47% (160/334)
回答No.1

質問を以下の2つと解釈します。 1)改行がノードとして取り出されるのは正しいのか/なぜか? 2)要素ノードnameの次に属性ノードtype,テキストノードabcが取り出せないのはなぜか? まず1ですが,改行がノードとして取り出されるのは,DOMの正しい仕様です。これがちゃんと取り出されないと,DOMからXMLに書き戻す時に改行が消去されてしまいます。 次に2についてですが,まずJAXPにもそのほかにもgetNodeList()というメソッドは見当たらなかったので,org.w3c.dom.Node.getChildNodes()のことと考えます。 要素ノード<talkset>でgetChildNodes()した時,NodeListの中に属性ノードtypeやテキストノード"abc"が出現しない理由は,それらが要素ノード<talkset>からみて子ノードではなく孫ノードに当るからです。 属性ノードtypeやテキストノード"abc"は,要素ノード<name>でgetChildNodes()して得られるNodeListの中から取り出すことができます。 参考: http://java.sun.com/j2se/1.4/ja/docs/ja/api/org/w3c/dom/class-use/NodeList.html http://java.sun.com/j2se/1.4/ja/docs/ja/api/org/w3c/dom/Node.html

参考URL:
http://java.sun.com/j2se/1.4/ja/docs/ja/api/org/w3c/dom/Node.html
noname#10667
質問者

お礼

ありがとうございます。 非常に参考になりました。 また勉強してみます。

すると、全ての回答が全文表示されます。

関連するQ&A