如何使用XPath获取节点值/ innerHTML?
我有一个XPath来选择我想要的类://div[@class='myclass']
。但它返回了我全部的div(与<div class='myclass'>
还可以,但我想没有标签本身只返回此标记的内容。我该怎么办呢?如何使用XPath获取节点值/ innerHTML?
使用xpath,您将返回的东西是路径中最后一个不是条件的东西,那是什么意思? []
's(但你已经知道了),你的读取像pathElement [,它有一个'class'属性值'我的班']。 hElement直接位于[
之前。
所有[]
的接外东西是路径,所以在//a/b/c[@blah='bleh']/d
一个,b,Ç和d都是路径元件,嗒嗒是属性和的Bleh一个文字值。如果这条路径匹配,它将返回一个d,最后一个无条件的东西。
您的特定路径返回(系列)div,这是xpath路径中的最后一件事。因此,这个返回值包括您的案例中的顶级节点,div,以及它(他们)的所有(他们)孩子的下面。节点可以是元素或文本(或注释,处理指令,...)。
在一个节点下面可以有多个文本节点,因此数组pOcHa谈论。 x/text()
返回x的直接子元素的所有文本,x/node()
返回所有子节点,包括文本。
希望这会有所帮助。
node() = innerXml
text() = innerText
都是阵列,所以文本( )[1]是第一个儿童文本节点...
新的答案的时候,经常问的问题:
对于这个XML
<div class="myclass">content</div>
您可以使用XPath来选择两种方式中的一种只是content
:
-
文本节点选择
此XPath,
//div[@class='myclass']/text()
将根据要求选择目标
div
元素的文本节点子项,content
。一个元素此XPath的
-
字符串值,
string(//div[@class='myclass'])
将返回针对性
div
件string-value,content
,再次为要求。进一步的信息:这里的一个note说明字符串值元件:
元素节点的string-value是 string-value S中的元素的所有文本节点descendants的串接 节点按文件顺序排列。
如何将多个文本节点看起来像XML? text()是否会返回所选inner节点的子节点的所有innerTexts的连接? – CoDEmanX
@CoDEmanX:'