我的xml看起来像这样:
<Context IsFollowA="0" IsFollowB="1">
<Info>
<Name>Rob</Name>
...
</Info>
</Context>
在我的xslt中,我有这些陈述:
<xsl:value-of select="concat('x=[', //Context/Info/Name, ']')" /><br/>
<xsl:value-of select="concat('y=[', //Context/@IsFollowA, ']')" /><br/>
<xsl:value-of select="concat('z=[', //Context/@IsFollowB, ']')" /><br/>
我的输出是:
x=[Rob]
y=[]
z=[]
我尝试了几条不同的路径而没有运气。我只是无法正确设置值。我做的事情有多荒谬吗?我不是xslt的专家,所以我很遗憾这很简单。非常感谢任何帮助。
答案 0 :(得分:0)
虽然从您提供的输入中不清楚,但一个可能的问题可能是: 有多个Context元素, 其中一个可能具有如下属性:
IsFollowA="" IsFollowB=""
然后,当您的XPATH使用//时,我们无法保证所有三行都引用相同的元素。
您可以尝试:
<xsl:for-each select="//Context">
<xsl:value-of select="concat('x=[', ./Info/Name, ']')" /><br/>
<xsl:value-of select="concat('y=[', ./@IsFollowA, ']')" /><br/>
<xsl:value-of select="concat('z=[', ./@IsFollowB, ']')" /><br/>
</xsl:for-each>
答案 1 :(得分:0)
虚假警报......在我收到之前,我正在查看的xml被另一项服务(以及剥离的属性)改变了。抱歉误导。