Xpath 如何计算XElement的所有标记?

Xpath 如何计算XElement的所有标记?,xpath,Xpath,这是一个XElement:Dim oTaget=: <target xmlns="urn:oasis:names:tc:xliff:document:1.2"> <mrk mtype="seg" mid="1082">■ <x id="8746" /><g id="8747">Store the product ./g></mrk> <g id="8747"> <mrk mtype="seg" m

这是一个
XElement
Dim oTaget=

<target xmlns="urn:oasis:names:tc:xliff:document:1.2">
  <mrk mtype="seg" mid="1082">■ <x id="8746" /><g id="8747">Store the product ./g></mrk>
  <g id="8747">
    <mrk mtype="seg" mid="1083">For this purpose</mrk>
  </g>
</target>
但结果=1

如何计算oTaget的所有标签
mrk

谢谢大家。

由于设置为select元素的
XPath
,您的结果计数是一个,它只统计
mrk
元素,这些元素位于
目标的第一个子级别。您必须递归地遍历
target
的所有子元素

编辑:


VB.NET中的递归示例请参见此处:

由于设置为select元素的
XPath
,您的结果计数为1,它仅统计
mrk
元素,这些元素位于
目标的第一个子级别。您必须递归地遍历
target
的所有子元素

编辑:


VB.NET中的递归示例请参见此处:

使用
//element
模式返回上下文元素中的所有元素:

sentenchild = oTaget.XPathSelectElements(".//" + dNS + ":mrk", namespaceManager)
引自:

//para
选择上下文节点的
para
元素后代

另一种方法是使用方法:


使用
//element
模式返回上下文元素中的所有元素:

sentenchild = oTaget.XPathSelectElements(".//" + dNS + ":mrk", namespaceManager)
引自:

//para
选择上下文节点的
para
元素后代

另一种方法是使用方法:


我们不能选择多级吗?不,不可能。使用
XElement.Elements(XName)
选择每个子级别中的匹配元素()我们不能选择多级吗?不,这是不可能的。使用
XElement.Elements(XName)
在每个子级别()中选择匹配的元素
Dim dNS As XNamespace = "urn:oasis:names:tc:xliff:document:1.2"
sentenchild = oTaget.Descendants(dNS + "mrk")