Xpath - 基于多个标准的选择

时间:2012-06-17 17:24:30

标签: 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>

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

我尝试使用:

XElement.XPathSelectElement("//person[@name='shawn'] | //person/hair[@style='bald']

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

提前致谢:)

彼得

1 个答案:

答案 0 :(得分:9)

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

//person[@name='shawn' and hair/@style='bald']

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

//person[@name='shawn' or hair/@style='bald']