xpath - 如何缩短此xpath表达式?

标签 xpath set expression

我定义了一个称为标签的变量,该变量选择名称为多个值之一的元素的节点集:

<xsl:variable name="tags" select="//xs:element[@name='Subscription' or @name='Account' or @name='Product'  or @name='ProductRatePlan' or @name='ProductRatePlanCharge' or @name='Usage']"/>


我想这样定义一个变量:

<xsl:variable name="tagNames" select="'Subscription','Account','Product','ProductRatePlan','ProductRatePlanCharge','Usage'/>


如何重写第一个表达式以选择名称在$ tagNames集中的所有节点?本质上,我正在寻找一种类似于SQL集成员身份的操作:

SELECT * FROM tags WHERE name in ('Subscription', 'Account', 'Product'....)

最佳答案

在XPath 2.0中,您可以编写:

<xsl:variable name="tags" select="//xs:element[@name=('Subscription','Account','Product','ProductRatePlan','ProductRatePlanCharge','Usage')]"/>

关于xpath - 如何缩短此xpath表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15886162/

相关文章:

c# - 如何使用 LINQ 选择未知子元素位置的子节点

python - 解析带有 <br> 标签的 html (Python)

Haskell:如何为集合定义类型类?

c++ - 在示例问题中合并操作?

c# - 无法从用法中推断出类型参数。尝试明确指定类型参数

html - XPath 选择两个标题之间的所有元素?

c++ - 如何按取消引用的值对集合进行排序?

sql-server-2008 - SQL Server 2008 中带有表达式的嵌入式 CASE

linq - 编译 LINQ 表达式

php - PHP DOM/XPath