在下面的 xml 代码中,我需要获取“b1”和“b2”作为我使用 xslt 的输出
在下面的 xml 代码中,我需要使用 xslt 获取“b1”和“b2”作为我的输出。
<xml>
<a>
<b>
<b1>b1value</b1>
<b2>b2value</b2>
</b>
<b>
<b1>b1value2</b1>
<b2> 2value2</b2>
</b>
</a>
</xml>
我编写了以下 XSLT:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<body>
<xsl:for-each select="xml/a/b/*[b1='b1value']">
<xsl:value-of select="local-name()"/>
<br> </br>
</xsl:for-each>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
但它没有给我任何输出..为什么?
相反,如果我写
<xsl:for-each select="xml/a/b/*">
<xsl:value-of select="local-name()"/>
输出是:
b1
b2
b1
b2
我需要的输出是:
b1
b2
In the below xml code, I need to get "b1" and "b2" as my output using xslt.
<xml>
<a>
<b>
<b1>b1value</b1>
<b2>b2value</b2>
</b>
<b>
<b1>b1value2</b1>
<b2> 2value2</b2>
</b>
</a>
</xml>
I wrote the following XSLT:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<body>
<xsl:for-each select="xml/a/b/*[b1='b1value']">
<xsl:value-of select="local-name()"/>
<br> </br>
</xsl:for-each>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
But it doesn't give me any output.. why?
Instead if i write
<xsl:for-each select="xml/a/b/*">
<xsl:value-of select="local-name()"/>
the output is:
b1
b2
b1
b2
the output i need is:
b1
b2
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
目前尚不清楚您想要获得什么输出。
然而,您没有从 XSLT 获得任何输出的原因是,在您的
for-each
中,您的 xpath 正在寻找的任何子级,这些子级也具有包含“b1value”的子
。
您需要移动您的谓词:
It's not clear exactly what you're trying to get for output.
However the reason you're not getting any output from your XSLT is that in your
for-each
, your xpath is looking for any children of<b>
that also have a child<b>
that contains "b1value".You need to move your predicate:
你的意思是这样吗:
Do you mean this: