簡體   English   中英

多個相同元素的XSLT變量元素名稱

[英]XSLT for Variable Element Name for multiple same elements

我有一段XML數據,其中有多個人的信息,表示為-

<phoneContact>
    <firstName>XXXXX</firstName>
    <middleName>Y</middleName>
    <lastName>ZZZZZ</lastName>
    <phone>1234567890</phone>
</phoneContact>
<phoneContact>
    <firstName>AAAA</firstName>
    <middleName>B</middleName>
    <lastName>CCCCC</lastName>
    <phone>9876543210</phone>
</phoneContact>

可能有許多人可用。 我想將其轉換為-

<phoneContact1>
    <firstName>XXXXX</firstName>
    <middleName>Y</middleName>
    <lastName>ZZZZZ</lastName>
    <phone>1234567890</phone>
</phoneContact1>
<phoneContact2>
    <firstName>AAAA</firstName>
    <middleName>B</middleName>
    <lastName>CCCCC</lastName>
    <phone>9876543210</phone>
</phoneContact2>

..依此類推。 如何構造一個XSL for-each代碼,該代碼創建多個這樣的不同元素名稱?

感謝您對此的任何幫助。

phoneContact元素的循環內,您可以使用<xsl:element>和position函數來創建編號的phoneContacts

<xsl:for-each select="phoneContact"> 
    <xsl:element name="phoneContact{position()}">
     ...
   </xsl:element>
</xsl:for-each>

我們可以使用以下身份函數來實現

<xsl:template match="node()|@*">
    <xsl:copy>
        <xsl:apply-templates select="@*|node()"/>
    </xsl:copy>
</xsl:template>
  <xsl:template match="/a/phoneContact">
<xsl:element name="phoneContact{position()}">

  <xsl:apply-templates select="@*|node()"/>

</xsl:element>
  </xsl:template>

暫無
暫無

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

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