我通过查看Node的值来循环。
If Node = B, then B has one of two possible meanings.
--If Node = A has been previously found in the file, then the value for A
should be sent as 1.
--If Node = A has NOT been found in the file, the the value for A should
be sent as 2.
where file is the xml source to be transformed
我无法弄清楚如何做到这一点。如果我使用的编程语言允许变量重新分配/更改其值,则很容易。但是,使用XSLT变量设置一次。
答案 0 :(得分:10)
您提供的代码与XSLT完全无关。在问这些问题之前,请阅读一本关于XSLT的好书。
这就是众所周知的做法,我想你的问题意思是:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text"/>
<xsl:template match="/">
<xsl:variable name="vA">
<xsl:choose>
<xsl:when test="//B">1</xsl:when>
<xsl:otherwise>2</xsl:otherwise>
</xsl:choose>
</xsl:variable>
$vA = <xsl:value-of select="$vA"/>
</xsl:template>
</xsl:stylesheet>
将此转换应用于以下XML文档:
<c>
<d/>
</c>
结果是:
$vA = 2
应用于此文档时:
<c>
<d>
<B/>
</d>
</c>
reult :
$vA = 1
获得相同结果的方法较短:
<xsl:variable name="vA" select="not(//B) +1"/>
答案 1 :(得分:0)
查看xsl:choose,xsl:when,xsl:if。你可以做到
<xsl:if test="A=1">
Set in here
</xsl:if>
<xsl:choose>
<xsl:when test="A=1">
<xsl:otherwise>
</xsl:choose>