K.Maebashi's BBS 投稿フォーム
ハンドル名
件名
Link
>件名を変更しました。 >またXMLで解らない事が出てきてしまいました・・・ >問題例を以下に記述します。 >---あ.xml---- ><愛 id=1> > <b> > <c> > </c> > </b> > <愛 ID=2> > </愛> ></愛> >------------ >特定のタグの属性の下に >-- ><k> > <愛 ID=7>あああ</愛> ></k> >を記述しそのタグ<愛>に属性を与えるというプログラムです。 > >☆例えば、あ.xmlの<愛 ID=2>の下に ><k> > <愛 ID=7>あああ</愛> ></k> >を加えたりするなどです。 > >ここで問題なのは、属性を作成するとエラーが発生してしまうということです。 > >以下に自作したプログラムを記述します。 > >static void selectionAppend() throws Exception { >DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); >DocumentBuilder db = dbf.newDocumentBuilder(); >Document doc = db.parse(new FileInputStream("あ.xml")); >NodeList list = doc.getElementsByTagName("愛"); >for (int i = 0; i < list.getLength(); i++) { >Element node = (Element)list.item(i); >if (!(node instanceof Element)) >continue; >String value = ((Element)node).getAttribute("ID"); //ここで対象属性名を指定し >if (value != null && value.equals("2")) { //ここで対象属性値を指定する >Node child1 = doc.createElement("k"); >Node child2 = doc.createElement("愛"); >//↑ここのタグに属性を追加したい、setAttribute("ID", "7");このメソッドを代入する >//のでしょうがどのように代入すればよろしいでしょうか。 > >Node child3 = doc.createTextNode("あああ"); >child2.appendChild(child3); >child1.appendChild(child2); >node.appendChild(child1); >//↑ここでツリー構成は完了していることになるのでしょうか?できたとしたら、 >//NodeList know = node.getElementsByTagName("愛"); >//Element knowe = (Element)know.item(0); >//knowe.setAttribute("No", "8"); >//こうするのでしょうが、 >//解らなくなってしまったので、また質問しにきました。宜しくお願いします。 > >} >} >FileOutputStream out = new FileOutputStream("あ2.xml"); >DOMSource src = new DOMSource(doc.getDocumentElement()); >StreamResult dst = new StreamResult(out); >Transformer tfm = TransformerFactory.newInstance().newTransformer(); >tfm.transform(src, dst); >out.close(); >} > > > >
spamよけのため、ここに「ほげぴよ」と入力してください。
削除パスワード :
クリック!