【发布时间】:2011-08-30 06:28:08
【问题描述】:
我正在尝试在多个不同节点的多个属性中搜索某些内容
这就是我在一个属性中找到它的方式
//*[contains(@name,'KEYA')]
示例 XML:
<cars>
<car model="2000" name="Awesome KEYA Car" name2="somethine else">Brand1</car>
<car model="2005" name="Awesome Car" name2="KEYA something else">Brand 2</car>
<car name="Awesome Car" name2="somethine else">Brand1</car>
<car dontmatch="KEYA" name2="somethine else">Brand3333</car>
</cars>
我真正想要的是超过 10 个属性(它只需要匹配白名单属性),
//*[contains((@name or @name2 or @name3),'KEYA')]
使用 XPATH 1.0。关于如何做到这一点的任何想法?除了重复包含之外,尝试了几种方法,但没有奏效。
【问题讨论】:
-
好问题,+1。请参阅我的答案以获得完整、简短且简单的单行 XPath 表达式解决方案,它使您可以灵活地以最紧凑和自然的形式轻松指定要搜索的属性的名称。还提供了解释。
标签: .net xpath attributes contains