我是XPath的新手所以请耐心等待。基本问题。
我想选择文字,包括元素。以下示例输入:
<node2>
<node3>A1</node3>
<node3>A2</node3>
<node3>A3</node3>
<node3>A4</node3>
</node2>
我希望复制包含标签的节点2的内容,即:
/node1/node2/
但是,如果我使用XPath A1 A2 A3 A4
,我只会获得值node2
(而不是node3
和ListBox_AfterUpdate()
标记。)
答案 0 :(得分:0)
xpath /node1/node2
应返回nodes
列表。每个node
,取决于您使用的语言包含nodeName
或nodeValue
等属性,您可以使用这些属性来访问包含的文本和标记的名称。
答案 1 :(得分:0)
但是,如果我将xpath用作
/node1/node2
- 我只会获得值A1 A2 A3 A4
(而不是node2
和node3
标记。)
<强>不正确即可。 XPath,/node1/node2
选择node2
的{{1}} 元素 子项,而不是文本节点或字符串。如果你只看到node1
这个XPath,那么你在一个自动转换为字符串值的上下文中评估XPath。
您不需要新的XPath;您需要评估已有的不同XPath的结果。例如,如果您正在使用
A1 A2 A3 A4
您应该迭代节点集或将模板应用于节点集中的所有元素,
<xsl:value-of select="/node1/node2"/>
或在XSLT 2.0中,返回一个序列,
<xsl:apply-templates select="/node1/node2"/>
等,具体取决于您对所选元素的确切需求。
答案 2 :(得分:0)
./node1/node()
或:
./node1/node2/../node()
如果需要整个HTML节点,请使用/ node()结束Xpath。
答案 3 :(得分:0)
选择node2元素及其内部的所有内容:
xPath:
//node2/descendant-or-self::*
css:
node2,node2 *
仅选择没有node2标记的内部内容:
xPath:
//node2/descendant::*
css:
node2 *
答案 4 :(得分:-1)