我的 xml 的一部分是:
<svg>
<g id='NOCUT'>
<line x="5.0"/>
<line x="55.0"/>
<path x="50.0"/>
<line x="0.0"/>
<line x="55.0"/>
.
.
</g>
</svg>
在我的 xslt 中,我应该只能读取此列表,直到它遇到 x=0;它后面的所有元素都需要被忽略。
我尝试编写如下内容,但不起作用:
<xsl:for-each select="svg[g/@id='NOCUT']">
<xsl:for-each select="g/*[preceding-sibling::node[line/@x = '0.0']]">
<xsl:value-of select="x"/>
</xsl:foreach>
</xsl:foreach>
我做错了什么?
最佳答案
你可以使用
<xsl:for-each select="g/*[not(preceding-sibling::line[@x = '0.0'])]">
而不是
<xsl:for-each select="g/*[preceding-sibling::node[line/@x = '0.0']]">
还有
更改<xsl:value-of select="x"/>
至<xsl:value-of select="@x"/>
关于c# - XSLT 前同级来限制 foreach,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49913587/