JavaのXMLの属性/ノードの設定

私のXMLは次のとおりです。


   
     Blah Test 

私は最終的なXMLが好きなように追加したいと思います:


   
     Blah Test New value 

//A を使用してXPathでノードを取得できます。ノードを取得すると、値を追加または編集する方法がわかりません。

3
私はDOMを使用しています。私はXSLTを使用していません。
追加された 著者 ed1t,
似たような疑問がたくさんあります。まず見てみてください。どの技術を使用し、新しいノードの価値はどのように供給されますか?これは知ることよりかなり重要です。 SAX、StAX、DOM、JDOMを使用していますか?あなたの解析は、XSLTを使用して変換し、JAXBとバインドしていますか?
追加された 著者 G_H,

3 答え

DocumentBuilder db = DocumentBuilderFactory.newInstance().newDocumentBuilder();
StringReader xml = new StringReader("BlahTest");
Document doc = db.parse(new InputSource(xml));
XPathFactory xPathfactory = XPathFactory.newInstance();
XPath xpath = xPathfactory.newXPath();
XPathExpression expr = xpath.compile("//A");
Element element = doc.createElement("D");
element.setTextContent("new value");
NodeList nodes = (NodeList) expr.evaluate(doc, XPathConstants.NODESET);
for(int i = 0; i < nodes.getLength(); i++) {  
    Node node = nodes.item(i);
    node.appendChild(element);
}
4
追加された

DOM APIを直接使用する以外に、DOM用の簡単なラッパーライブラリである jOOX を使用することもできます、私が作成した:

// With css-style selectors
$(document).find("A").append("New value");

// With XPath
$(document).xpath("//A").append("New value");
0
追加された

このメソッドを使用します。 Element はこれを拡張しているので、まず A の要素を取得する必要があります。 を使用してください。目的の D 要素を作成してその内容を設定するには、 Document インスタンスまたはこのクラスの他の適切なメソッドでこのメソッドを使用します。

0
追加された