![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
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で質問しましょう!
似たような質問が見つかりました
- UNIX・Linux メールアドレスにホスト名が入らないようにする設定 2 2022/06/23 21:06
- その他(プログラミング・Web制作) pythonで、tkinterとpillowの組み合わせ 2 2022/08/16 17:42
- Android(アンドロイド) Androidスマホの時刻の自動同期の頻度を短くしたい 4 2022/12/02 17:29
- UNIX・Linux マスターブートレコード方式のbiosを使ったシステムでインストールされたlinuxで/dev/sda 1 2023/05/13 21:23
- その他(パソコン・スマホ・電化製品) pthonのframeに演算結果(数値)を表示したい 1 2023/06/05 22:08
- UNIX・Linux ファイル・フォルダーの削除方法 2 2022/05/19 14:04
- XML XML同じ名前の要素を自動で集約するツール 1 2022/04/11 09:21
- その他(パソコン・スマホ・電化製品) スマホをroot化したいのですが一番簡単にできる端末教えてください 2 2022/12/02 00:58
- SSL・HTTPS ルート証明書の有効期限がだいぶ前なのに時計が進んでいますと表示され今日になってみれなくなったサイト 1 2022/10/26 20:35
- Visual Basic(VBA) モードレスでユーザーフォームが開け(表示)ません。 4 2022/09/09 11:05
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
vbsのDOMDocumentで要素のText...
-
C言語のプログラムを教えてくだ...
-
TreeViewの再表示のちらつきを...
-
CPUの考え方を教えてください ...
-
VisualBasic.net(2008) ツリー...
-
コンテキストメニュークリック...
-
昔Winnyってありましたけど、あ...
-
複数のマックPCによる数値計算...
-
ルート要素ノードが2個ある場合?
-
XMLで要素が記述された順番に意...
-
XMLファイル内のデータ(値)を変...
-
VBSでxmlの値を書き換えたい
-
Access VBAでXMLが読み込めない
-
UTF-8でエンコーディングとはど...
-
XMLを出力する時のエラー原因
-
東芝のDynabookなのですがアン...
-
XML、XSLTの適応エラー(IEから...
-
【アプリ開発】日本語を含むXML...
-
XMLDocumentでスキーマを無視し...
-
ある文字列を含むノードが存在...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
CPUの考え方を教えてください ...
-
昔Winnyってありましたけど、あ...
-
SNMP リンクダウンとノードダ...
-
ルート要素ノードが2個ある場合?
-
あるノードリストに、特定の名...
-
同じタグ名の項目取得
-
コンテキストメニュークリック...
-
ノードとは
-
XML文書の指定した属性値を持つ...
-
ツリービューのノードをダブル...
-
2分探索木の高さを求めるプロ...
-
C# TreeView 効率良いノード追...
-
VB6.0でDOMを使用して...
-
スケールフリーネットワークをC...
-
C#でtreeviewの指定ノードを選...
-
複数のマックPCによる数値計算...
-
TreeViewに重複する値をセット
-
ツリービューの使い方が・・・
-
各ノードの行数取得
-
TreeViewの再表示のちらつきを...
おすすめ情報