2011-10-12 51 views
0

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

谢谢 - 戴夫

回答

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):

在设置时,可以删除此节点可能拥有的任何可能的子节点,并且如果它的新字符串不为空或为空,则由包含st的单个Text节点替换环此属性设置为。

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

的问题更多的是关于我如何才能找到的节点的部分使用XPath表达式来设置。给出的是一个org.w3c.dom.Node对象,并将xpath表达式应用于该对象。 – Dave

+0

我编辑了答案:新的,你首先找到你关心的元素,然后设置它的文本内容。 – gioele