我正在开发基于.net 2.0的asp.net应用程序.
我处理XML时遇到了一些问题.
假设我有这样的XML:
<person name="xxxyx" age="32" />
<person name="zzz" age="32" />
<person name="yyyxx" age="32" />
Run Code Online (Sandbox Code Playgroud)
现在我想选择名字中包含的人 yx
我如何使用xpath来实现它?
我只知道这个表达式会匹配名字正好是"yx"的人:
"//person[name='yx'"]"
Run Code Online (Sandbox Code Playgroud)
如何进行模糊搜索?
顺便说一下,有没有想过按照"名字"这样的指定属性对匹配的人进行排序?
像@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>
Run Code Online (Sandbox Code Playgroud)
这里记录了一些更多的属性<xsl:sort />:http://www.w3.org/TR/xslt#sorting
使用该contains()功能.
//person[contains(@name, 'yx')]
Run Code Online (Sandbox Code Playgroud)
此外,请注意您需要@在前面,name因为它是一个属性.
演示.
| 归档时间: |
|
| 查看次数: |
8308 次 |
| 最近记录: |