ўстаноўка атрыбуту/вузел у XML у Java

Вось мой XML:


   
     Blah Test 

Я хацеў бы дадаць пад таму мой канчатковы xml хацеў:


   
     Blah Test New value 

Я магу атрымаць вузел у XPath, выкарыстоўваючы //A і я не ўпэўнены, як дадаць ці змяніць значэння, як толькі я атрымліваю вузел.

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 напрамую, вы можаце таксама выкарыстоўваць jOOX , простая бібліятэка абгортка для DOM , што я стварыў:

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

// With XPath
$(document).xpath("//A").append("New value");
0
дададзена

Праверыць гэты метад на вашым Дакумент асобнік, ці які-небудзь іншы прыдатны метад з класа, каб стварыць пажаданыя D элемент, а затым ўсталяваць яго змесціва.

0
дададзена