簡體   English   中英

在XSLT中生成具有相同名稱的多個節點

[英]Generate multiple nodes with same name in XSLT

我正在使用XSLT

輸入如下

<data>
    <details>
        <DATA>
            <name>nameValue</name>
        </DATA>
        <DATA>
            <name>nameValue1</name>
        </DATA>
    <details>
<data>

XSLT是

<xsl:template match="details">
    <xsl:copy>
        <info>
            <person_name>
                <xsl:value-of select="DATA/name"/>
            </person_name>
        </info>
    </xsl:copy>
</xsl:template>

輸出

<info>
    <person_name>nameValue</person_name>
</info>

預期輸出如下

<info>
    <person_name>nameValue</person_name>
</info>
<info>
    <person_name>nameValue1</person_name>
</info>

您的XML格式不正確,因為它有開始標記,應該在結束標記處。 但是假設它看起來像這樣...

<data>
    <details>
        <DATA>
            <name>nameValue</name>
        </DATA>
        <DATA>
            <name>nameValue1</name>
        </DATA>
    </details>
</data>

...您需要做的是使用xsl:for-each選擇每個子DATA元素

<xsl:template match="details">
    <xsl:copy>
        <xsl:for-each select="DATA">
            <info>
                <person_name>
                    <xsl:value-of select="name"/>
                </person_name>
            </info>
        </xsl:for-each>
    </xsl:copy>
</xsl:template>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM