OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
締切り
済み

DOMツリーの作り方。

  • 困ってます
  • 質問No.184446
  • 閲覧数556
  • ありがとう数8
  • 気になる数0
  • 回答数1
  • コメント数0

お礼率 84% (44/52)

XMLのDOMツリーをjavaで作りたいです。
---Root.xmlファイル---
<?xml version="1.0!>
<root></root>
------
DocumentBuilderFactory dbf =
DocumentBuilderFactory.newInstance();
DocumentBuilder builder = dbf.newDocumentBuilder();
Document root = builder.parse("c:/tmp/Root.xml");
/*rootの子ノードとして新しいノード(title)を追加していく*/

といったやり方があると思うんですが、
そうではなく、プログラム内でrootドキュメントを作ってtitle子ノードを追加していきたいんです。
つまり、Root.xmlに頼りたくないということなんですが、どうしたらよいでしょうか?
通報する
  • 回答数1
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

回答 (全1件)

  • 回答No.1
レベル14

ベストアンサー率 50% (1122/2211)

私もあまり詳しくはないんですが、以下のような感じになると思います。 DocumentBuilder の parse() メソッドではなく、newDocument() メソッドを使って DOM オブジェクトのインスタンスを作成して、それに Element を追加してゆく、という感じ。 DocumentBuilderFactory dbf = DocumentBuilderFactory.new ...続きを読む
私もあまり詳しくはないんですが、以下のような感じになると思います。
DocumentBuilder の parse() メソッドではなく、newDocument() メソッドを使って
DOM オブジェクトのインスタンスを作成して、それに Element を追加してゆく、という感じ。


DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();

Document document = builder.newDocument();

Element root = (Element) document.createElement("root");
document.appendChild(root);

Element title = (Element) document.createElement("title");
root.appendChild(title);


参考URLに、本家 SUN の JAXP のチュートリアルのページを紹介しておきます。
DOM は Part3 ですね。頑張って読むだけの価値はあると思いますよ。
補足コメント
myrimyri

お礼率 84% (44/52)

ありがとうございました!ちゃんとできました。
ちなみにtitleを追加するときに、新しいのを作らないで、
データベースから得てきた Node型の<title>タイトル名</title>
をroot.appendChild(title) しようとして、エラーが出ました。
org.w3c.dom.DOMException: DOM005 Wrong document 
at
org.apache.xerces.dom.ParentNode.internalInsertBefore(ParentNode.jav
:394)
at
org.apache.xerces.dom.ParentNode.insertBefore(ParentNode.java:326)
at org.apache.xerces.dom.NodeImpl.appendChild(NodeImpl.java:224)

at addDOM.add_node(addDOM.java:19)
           ......
といったエラーなんですが、何がいけないか分かりますか?
投稿日時 - 2001-12-13 14:35:37
お礼コメント
myrimyri

お礼率 84% (44/52)

appendChildの前に
importNode()メソッドを使って Documentの実装の変換を行いました。
が、 org.w3c.dom.DOMException: DOM003 Namespace error
というエラーが出ました。なんだろう????分かりますか??
投稿日時 - 2001-12-13 15:44:35
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ