gpt4 book ai didi

xml - XPath:如何选择具有一个或另一个属性的所有元素

转载 作者:数据小太阳 更新时间:2023-10-29 02:56:36 26 4
gpt4 key购买 nike

我一直在到处寻找这个,但找不到解决我的问题的方法。我试图找到一个 XPath 表达式,它将选择具有名为“user”或“product”(或两者)的属性的所有元素。我知道一个属性的 XPath 表达式是:

//*[@user]

//*[@product]

这两种方法都可以正常工作,它们可以抓取文档中任意位置具有适当属性的所有元素。但每当我尝试将它们结合起来时:

//*[@user|@product]

//*[@user]|//*[@product]

我只获取在找到这些属性的第一级中找到的元素。这是我的 XML 文档的示例:

<?xml version="1.0" encoding="ISO-8859-1" ?>
<?xml-stylesheet href="xslt.xml" type="application/xml"?>
<catalog>
<item user="me" product="coffee" />
<price product="expensive" quality="good">$19.50</price>
<item user="still me"><note product="poison">Do not eat.</note></item>
<price product="mystery"><exchange user="still me" product="euro" />$99.95</price>
</catalog>

现在有了这个 XSLT 转换:

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="//*[@user|@product]">
<xsl:copy />
</xsl:template>
</xsl:stylesheet>

我只得到这些元素:

<item/>
<price/>
<item/>
<price/>

但我真正想要的是:

<item/>
<price/>
<item/>
<note/>
<price/>
<exchange/>

当然,正如您可能已经猜到的那样,当我将“user”属性放入我的目录元素时,所有被选中的都是目录元素,没有子元素。

我已经尝试了几个小时,但找不到解决方案。如果有人知道如何解决这个问题,请告诉我。

最佳答案

使用代替|| 是一个不同的运算符,坦率地说,我不知道 :-)

的含义

关于xml - XPath:如何选择具有一个或另一个属性的所有元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29911709/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com