0
我對XML/XSL相當陌生,因此我會盡可能描述一下。我有一個XML元素,我需要用它來填充一個值,每次找到元素時都會增加一個數字。XSL在每次模板運行時都會自動增加一個數字
這是我到目前爲止有:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:variable name="count">
<xsl:number level="any" value="position()"/>
</xsl:variable>
<xsl:template match="@* | node()">
<xsl:copy>
<xsl:apply-templates select="@* | node()"/>
</xsl:copy>
</xsl:template>
<xsl:template name="index">
<xsl:param name="counter" select="''"/>
<xsl:value-of select="$count"/>
</xsl:template>
<xsl:template match="//file_item_nbr">
<file_item_nbr>
<xsl:call-template name="index">
<xsl:with-param name="counter" select="''">
<!--<xsl:value-of select="$count + 1"/-->
</xsl:with-param>
</xsl:call-template>
</file_item_nbr>
</xsl:template>
</xsl:stylesheet>
的XML數據有多種嵌套元素file_item_nbr標籤。這就是爲什麼模板使用// file_item_nbr xpath匹配所有file_item_nbr元素的原因。
如何增加每個file_item_nbr的編號?
非常感謝!對於這麼簡單的事情,我有很多麻煩。一本或兩本關於XML/XSL的書不會傷害讀者。 –
我喜歡這個答案,因爲它爲我提供了正確的解決方案。然而,我現在有一個困境,因爲我必須做兩次轉換才能完全按照它應該得到我的XML數據。如果原始xml數據中存在單個元素,有沒有辦法將變量增加x倍? 例如,我的XML數據包含一個根元素,其他所有內容都是其中的一個子元素。我的第一個轉換將數據格式化爲嵌套元素,並在這種特定情況下創建file_item_nbr的MANY元素,即使XML數據僅包含單個元素。 –