如何使用xpath表达式更改org.w3c.dom.Node的一部分?

时间:2011-10-12 18:06:19

标签: java xpath w3c

我正在使用Java 6.给定一个org.w3c.dom.Node,如果给出一个表示其中一个元素的xpath String表达式,如何更改其子元素之一(或可能是节点本身)的内容?请注意“内容”,我总是指文字。如果路径表达式表示的子元素包含其他子元素,那些元素应该消失并替换为我想要替换的文本。

谢谢, - 戴夫

1 个答案:

答案 0 :(得分:0)

首先,您找到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#setTextContentjavadoc):

  

在设置时,此节点可能具有的任何子节点都将被删除,如果新字符串不为空或为null,则替换为包含此属性设置为的字符串的单个Text节点。

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