встановити атрибут/вузол в 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
додано

Перевірте цей метод інтерфейсу Node з DOM. Element розширює це, тому спочатку потрібно отримати елемент для A . Використовуйте цей метод на екземплярі Документ або інший відповідний метод із класу, щоб створити бажаний елемент D , а потім встановити його вміст.

0
додано
ІТ КПІ - Java
ІТ КПІ - Java
436 учасників