在字符串 XSLT 2 中计算 parent 个元素和 return 个元素
Count the parent elements and return them in string XSLT 2
我想计算 parent 个元素和 return 个字符串格式的元素。我在下面提到了尝试过的代码。
输入:
<node>
<dot>
<title>paragaraph 12</title>
</dot>
<dot>
<dot>
<dot>
<ttle>paragaraph 23</ttle>
</dot>
</dot>
</dot>
<dot>
<dot>
<title>paragaraph 24</title>
</dot>
</dot>
</node>
尝试过的代码:
<xsl:template match="title[parent::dot]">
<xsl:value-of select="count(parent::dot)"/>
</xsl:template>
预期输出:
<output>
<out type="One">paragaraph 12</out>
<out type="Three">paragaraph 23</out>
<out type="Two">paragaraph 24</out>
</output>
解释输出:
<out type="One">paragaraph 12</out>
--> 这里有一个 <dot>
上面的标题。所以 @type
应该是 One
<out type="One">paragaraph 23</out>
--> 这里有3个<dot>
上面的title。所以 @type
应该是 Three
<out type="One">paragaraph 24</out>
--> 这里有两个<dot>
上面的title。所以 @type
应该是 Two
您要找的是 ancestor-axis:
<xsl:template match="title[parent::dot]">
<xsl:element name="out">
<xsl:attribute name="type" select="count(ancestor::dot)"/>
<xsl:value-of select="."/>
</xsl:element>
</xsl:template>
要将数字转换为单词,请查看此问题:
xsl:number
和 format="Ww"
应该产生正确的输出:
<xsl:template match="dot/title">
<out>
<xsl:attribute name="count">
<xsl:number format="Ww" value="count(ancestor::dot)"/>
</xsl:attribute>
<xsl:apply-templates/>
</out>
</xsl:template>
我想计算 parent 个元素和 return 个字符串格式的元素。我在下面提到了尝试过的代码。
输入:
<node>
<dot>
<title>paragaraph 12</title>
</dot>
<dot>
<dot>
<dot>
<ttle>paragaraph 23</ttle>
</dot>
</dot>
</dot>
<dot>
<dot>
<title>paragaraph 24</title>
</dot>
</dot>
</node>
尝试过的代码:
<xsl:template match="title[parent::dot]">
<xsl:value-of select="count(parent::dot)"/>
</xsl:template>
预期输出:
<output>
<out type="One">paragaraph 12</out>
<out type="Three">paragaraph 23</out>
<out type="Two">paragaraph 24</out>
</output>
解释输出:
<out type="One">paragaraph 12</out>
--> 这里有一个 <dot>
上面的标题。所以 @type
应该是 One
<out type="One">paragaraph 23</out>
--> 这里有3个<dot>
上面的title。所以 @type
应该是 Three
<out type="One">paragaraph 24</out>
--> 这里有两个<dot>
上面的title。所以 @type
应该是 Two
您要找的是 ancestor-axis:
<xsl:template match="title[parent::dot]">
<xsl:element name="out">
<xsl:attribute name="type" select="count(ancestor::dot)"/>
<xsl:value-of select="."/>
</xsl:element>
</xsl:template>
要将数字转换为单词,请查看此问题:
xsl:number
和 format="Ww"
应该产生正确的输出:
<xsl:template match="dot/title">
<out>
<xsl:attribute name="count">
<xsl:number format="Ww" value="count(ancestor::dot)"/>
</xsl:attribute>
<xsl:apply-templates/>
</out>
</xsl:template>