
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に頼りたくないということなんですが、どうしたらよいでしょうか?
No.1ベストアンサー
- 回答日時:
私もあまり詳しくはないんですが、以下のような感じになると思います。
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 ですね。頑張って読むだけの価値はあると思いますよ。
参考URL:http://java.sun.com/xml/jaxp/dist/1.1/docs/tutor …
この回答への補足
ありがとうございました!ちゃんとできました。
ちなみに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)
......
といったエラーなんですが、何がいけないか分かりますか?
appendChildの前に
importNode()メソッドを使って Documentの実装の変換を行いました。
が、 org.w3c.dom.DOMException: DOM003 Namespace error
というエラーが出ました。なんだろう????分かりますか??
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ルート要素ノードが2個ある場合?
-
CPUの考え方を教えてください ...
-
SNMP リンクダウンとノードダ...
-
TreeViewに重複する値をセット
-
同じタグ名の項目取得
-
ノード数とは?
-
vbsのDOMDocumentで要素のText...
-
TreeViewで複数ノードの選択は...
-
SNMP ステータスポーリングと...
-
xmlファイルが上手にHTMLに変換...
-
東芝のDynabookなのですがアン...
-
特殊記号が勝手にエスケープさ...
-
xmlのテキストにリンクを張りた...
-
バッチファイルでテキストファ...
-
XMLで要素が記述された順番に意...
-
XML、XSLTの適応エラー(IEから...
-
HTTPステータス 404 - There is...
-
PerlによるXMLからCSVへの変換...
-
使用しない要素を無視するには...
-
XMLで特殊文字を扱うにはどうし...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
CPUの考え方を教えてください ...
-
ルート要素ノードが2個ある場合?
-
SNMP リンクダウンとノードダ...
-
昔Winnyってありましたけど、あ...
-
C#でTreeViewのCheckBoxのサイ...
-
ノードとは
-
ツリービューのノードをダブル...
-
同じタグ名の項目取得
-
あるノードリストに、特定の名...
-
TreeView の初期表示について
-
TreeVIewのノード名を編集する...
-
TreeViewで複数ノードの選択は...
-
複数のマックPCによる数値計算...
-
C# TreeView 効率良いノード追...
-
TreeViewに重複する値をセット
-
2分探索木の高さを求めるプロ...
-
Ciscoルータやスイッチを使用し...
-
各ノードの行数取得
-
VB2005 TreeViewの任意ノード選択
-
4色定理はなぜグラフ理論で証...
おすすめ情報