Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用xpath表达式更改org.w3c.dom.Node的一部分?_Java_Xpath_W3c - Fatal编程技术网

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

Java 如何使用xpath表达式更改org.w3c.dom.Node的一部分?,java,xpath,w3c,Java,Xpath,W3c,我正在使用Java6。给定org.w3c.dom.Node,如果给定表示其中一个元素的xpath字符串表达式,如何更改其子元素或节点本身的内容?从内容上讲,我总是指文本。如果路径表达式表示的子元素包含其他子元素,则这些子元素应该消失,并替换为我要替换的文本 谢谢,-Dave首先,使用简单 然后使用NodesetTextContent: 在设置时,此节点可能具有的所有可能的子节点都将被删除,如果新字符串不为空或null,则替换为包含此属性设置为的字符串的单个文本节点 问题更多的是如何使用xpath

我正在使用Java6。给定org.w3c.dom.Node,如果给定表示其中一个元素的xpath字符串表达式,如何更改其子元素或节点本身的内容?从内容上讲,我总是指文本。如果路径表达式表示的子元素包含其他子元素,则这些子元素应该消失,并替换为我要替换的文本


谢谢,-Dave

首先,使用简单

然后使用NodesetTextContent:

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


问题更多的是如何使用xpath表达式找到要设置的节点部分。给出了一个org.w3c.dom.Node对象,并将xpath表达式应用于该对象。我编辑了答案:新建,首先找到您关心的元素,然后设置其文本内容。
// `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);
elem.setTextContent("This is the new content. Old content, go away!");