如何选择节点名称包含"mystring"的节点

afi*_*fin 6 c# xpath xmldocument c#-2.0

我需要获取XmlNodeList,其中节点名称包含"mystring"

XML

    <?xml version="1.0" encoding="utf-8"?>
<root>
  <node1>
    node1 value
  </node1>
  <node2_mystring>
    node2 value
  </node2_mystring>
  <node3>
    node3 value
  </node3>
  <node4_mystring>
    node 4 value
  </node4_mystring>
</root>
Run Code Online (Sandbox Code Playgroud)

期望的输出是

<?xml version="1.0" encoding="utf-8"?>
<root>
  <node2_mystring>
    node2 value
  </node2_mystring>
  <node4_mystring>
    node 4 value
  </node4_mystring>
</root>
Run Code Online (Sandbox Code Playgroud)

我试过类似的东西 XmlNodeList mystringElements = xmlDocument.SelectNodes(@"//*[contains(name,'mystring')]");

但它返回零节点.我应该在XPath查询中放置什么来实现这一目标.

Wel*_*bog 12

您需要使用该name()功能.只是name单单将尝试匹配名为"名"的元素.

你要这个:

//*[contains(name(),'mystring')]
Run Code Online (Sandbox Code Playgroud)