如何简化这个Xpath表达式?
我有以下XML代码:如何简化这个Xpath表达式?,xpath,expression,xslt-1.0,reduction,Xpath,Expression,Xslt 1.0,Reduction,我有以下XML代码: <root> <a><l_desc/></a> <b><l_desc>foo</l_desc></b> <c><l_desc>bar</l_desc></c> </root> 福 酒吧 我想将l_desc节点与a或b节点作为父节点进行匹配。 现在,我使用这个xpath表达式://a/l_desc
<root>
<a><l_desc/></a>
<b><l_desc>foo</l_desc></b>
<c><l_desc>bar</l_desc></c>
</root>
福
酒吧
我想将l_desc节点与a或b节点作为父节点进行匹配。
现在,我使用这个xpath表达式:
//a/l_desc/。|//提单说明。
我更喜欢这样写:/(a | b)/l|u desc/。
不幸的是,此表达式无效
你对减少第一个表达式有什么想法吗?
xpath将在XSLT样式表v1.0中使用
你可以在这里使用谓词
l_desc[../a|../b]
这里可以使用谓词
l_desc[../a|../b]
我想将l_desc
节点与
a或b节点作为父节点
更简单的是:
/root/a/l_desc | /root/b/l_desc
或
启动/
运算符时(设计错误,架构未知):
或
在XPath 2.0中,这是有效的
/root/(a|b)/l_desc
我想将l_desc
节点与
a或b节点作为父节点
更简单的是:
/root/a/l_desc | /root/b/l_desc
或
启动/
运算符时(设计错误,架构未知):
或
在XPath 2.0中,这是有效的
/root/(a|b)/l_desc
怎么样
//l_desc[parent::a or parent::b]
怎么样
//l_desc[parent::a or parent::b]
?使用:
/*/*[self::a or self::b]/l_desc
这意味着:选择作为任何a
或b
元素的子元素的所有l_desc
元素,该元素本身是XML文档顶部元素的子元素
避免:
/
缩写<代码>/可能非常低效父轴:
)。包含反向轴的表达式更难理解,并且可能比仅包含正向轴的表达式效率更低a
或b
元素的子元素的所有l_desc
元素,该元素本身是XML文档顶部元素的子元素
避免:
/
缩写<代码>/可能非常低效父轴:
)。包含反向轴的表达式更难理解,并且可能比仅包含正向轴的表达式效率更低这一个有效,但我必须修改一点:l_desc[../self::a |../self::b]这一个有效,但我必须修改一点:l_desc[../self::a |../self::b]样式表中的哪里?作为@match中的模式?作为@select?好问题+1中的表达式。不过,您还没有接受最佳答案。样式表中的哪个位置?作为@match中的模式?作为@select?好问题+1中的表达式。不过,你还没有接受最佳答案。+1代表一个好的、详尽的答案,绝对是所有答案中最好的。+1代表一个好的、详尽的答案,绝对是所有答案中最好的。