Xpath - 基于多个标准的选择

Sch*_*zIT 4 c# xpath

我有以下XML文件:

<persons>
   <person name="shawn">
      <age>34</age>
      <hair style="spikes">red</hair>
    </person>
    <person  name="mike">
       <age>36</age>
       <hair style="bald">red</hair>
    </person>
    <person name="shawn">
       <age>38</age>
       <hair style="bald">red</hair>
    </person>
</persons>
Run Code Online (Sandbox Code Playgroud)

在C#中使用XPath,是否可以选择名称为"Shawn"的person元素,以及hair style ="bald"?

我试过用:

XElement.XPathSelectElement("//person[@name='shawn'] | //person/hair[@style='bald']
Run Code Online (Sandbox Code Playgroud)

但这给了我一个hair元素的引用,而不是person元素.

提前致谢 :)

彼得

act*_*imp 9

如果你想要一个既被称为shawn又有秃头的人(你的问题标题建议),你想要:

//person[@name='shawn' and hair/@style='bald']
Run Code Online (Sandbox Code Playgroud)

如果你想要被称为肖恩或秃头的人(看起来你可能会在你的问题中尝试),你想要:

//person[@name='shawn' or hair/@style='bald']
Run Code Online (Sandbox Code Playgroud)

  • 他们没有.表达式`// person [@ name ='shawn'] [hair/@ style ='bald']`同样适用.无论你的错误是什么,都不是这个. (4认同)