我正在开发基于 .net 2.0 的 asp.net 应用程序。
而且我在处理 XML 时遇到了一些问题。
假设我有这样的 XML:
<person name="xxxyx" age="32" />
<person name="zzz" age="32" />
<person name="yyyxx" age="32" />
现在我想选择名字包含
yx
的人我如何使用 xpath 来实现它?
我只知道这个表达式会匹配名字正好是“yx”的人:
"//person[name='yx'"]"
如何进行模糊搜索?
顺便说一句,任何想法通过指定的属性(如“姓名”)对匹配的人进行排序?
最佳答案
就像@Utkanos 建议的那样//person[contains(@name, 'yx')]
应该匹配你想要的节点。
至少据我所知,XPath 本身没有能力,也不打算在节点上提供顺序,而是返回节点集,这些节点集是“无重复节点的无序集合”(参见 1 和评论)。但是,在 2.0 版中,此 2 可能会有所更改我不熟悉。
假设排序应该在 XSL 转换中完成,您可以使用 <xsl:sort />
像这样:
<xsl:apply-templates select="//person[contains(@name, 'yx')]">
<xsl:sort select="@name" />
</xsl:apply-templates>
<xsl:sort />
上还有一些属性此处记录:http://www.w3.org/TR/xslt#sorting
关于asp.net - 使用通配符匹配 xpath 中的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11393111/