Переименуйте дочерний XML, используя XSLT - XSLT 1.0 - PullRequest
0 голосов
/ 31 октября 2018

Кто-нибудь знает, как я могу переименовать тег с помощью XSLT?

В моем примере я копирую тег «NUMBER» из «CONTACT / NUMBER» в теге «ADD» в «GRP». Но теперь я также хочу, чтобы скопированный тег «NUMBER» в «GRP» назывался «CONTACT_NUMBER» вместо «NUMBER».

<xsl:template match="GRP">
    <xsl:copy>
<!--copy the data from ADD - CN to the GRP so it can be used in the mapping to set the delivery address from end customer-->
        <xsl:for-each select ="./ADD">
         <xsl:if test="./QUALIFIER='CN'">
          <xsl:copy-of select="PARTY_NAME_1"/>    
          <xsl:copy-of select="STREET_1"/>
          <xsl:copy-of select="CITY"/>
          <xsl:copy-of select="POSTAL_CODE"/>
          <xsl:copy-of select="COUNTRY_CODE"/>
          <xsl:copy-of select="CONTACT/NUMBER"/>
       </xsl:if>
      </xsl:for-each>
    <!--copy all other nodes-->
      <xsl:apply-templates select="@* | node()"/>
    </xsl:copy>
  </xsl:template>

Результат:

PARTY_NAME_1

STREET_1

... CONTACT_NUMBER (вместо "NUMBER")

Спасибо, Джулиан

1 Ответ

0 голосов
/ 31 октября 2018

Изменение

<xsl:copy-of select="CONTACT/NUMBER"/>

до

<CONTACT_NUMBER>
  <xsl:value-of select="CONTACT/NUMBER"/>
</CONTACT_NUMBER>

Это должно сделать работу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...