Как изменить часть org.w3c.dom.Node, используя выражение xpath? - PullRequest
0 голосов
/ 12 октября 2011

Я использую Java 6. Учитывая org.w3c.dom.Node, как изменить содержимое одного из его дочерних элементов (или, возможно, самого узла), учитывая выражение xpath String, представляющее один из этих элементов?Обратите внимание на «содержание», я всегда имею в виду текст.Если дочерний элемент, представленный выражением пути, содержит другие дочерние элементы, они должны быть удалены и заменены текстом, который я хочу заменить.

Спасибо, - Dave

1 Ответ

0 голосов
/ 13 октября 2011

Сначала вы найдете элемент, на который указывает выражение XPath (используя простой XPathAPI )

// `node` is your node
// `xpathExpr` is a String with the XPath expression
// `elem` is is element pointed by the XPath expression

Node elem = XPathAPI.selectSingleNode(node, xpathExpr);

тогда вы используете Node#setTextContent ( javadoc ):

При установке все возможные дочерние узлы, которые могут иметь этот узел, удаляются и, если новая строка не пустая или не пустая, заменяются одним узлом Text, содержащим строку, для которой установлен этот атрибут.

elem.setTextContent("This is the new content. Old content, go away!");
...