首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >XSLT如何在层次结构中创建一个包含多个元素的字符串

XSLT如何在层次结构中创建一个包含多个元素的字符串
EN

Stack Overflow用户
提问于 2018-02-09 23:04:50
回答 1查看 42关注 0票数 0

我有这个XML源代码:

代码语言:javascript
复制
<HEADER>
      <ODL_CODE>589146586</ODL_CODE>
      <ADR_CODE>154116515</ADR_CODE>
      <MNV_HER>EUR</MNV_HER>
      <IKS>
         <TYPE_CU>BY</TYPE_CU>
         <ID_CU>549745</ID_CU>
         <NAME>Company name</NAME>
         <ADDRESS>Street 123, City</ADDRESS>
         <TEL>+45 789 632 548</TEL>
         <MAIL>mail@address.com</MAIL>
      </IKS>
      <IKS>
         <TYPE_CU>IV</TYPE_CU>
         <ID_CU>7894156</ID_CU>
         <NAME>Company name #2</NAME>
         <ADDRESS>Street 123, City #2</ADDRESS>
         <TEL>+45 789 632 548 #2</TEL>
         <MAIL>mail@address.com #2</MAIL>
      </IKS>
 </HEADER>

我想要这样的输出:

代码语言:javascript
复制
 <HEADER>
      <ODL_CODE>589146586</ODL_CODE>
      <ADR_CODE>154116515</ADR_CODE>
      <MNV_HER>EUR</MNV_HER>
      <IKS>
         <TYPE_CU>BY</TYPE_CU>
         <ID_CU>549745</ID_CU>
         <NAME>Company name</NAME>
         <ADDRESS>Street 123, City</ADDRESS>
         <TEL>+45 789 632 548</TEL>
         <MAIL>mail@address.com</MAIL>
      </IKS>
      <IKS>
         <TYPE_CU>IV</TYPE_CU>
         <ID_CU>7894156</ID_CU>
         <NAME>Company name #2</NAME>
         <ADDRESS>Street 123, City #2</ADDRESS>
         <TEL>+45 789 632 548 #2</TEL>
         <MAIL>mail@address.com #2</MAIL>
      </IKS>
      <POZN_1>Name: Company name #2, Street: Street 123, City #2, TEL: +45 789 632 548 #2</POZN_1>
 </HEADER>

如何用XSLT编写?我尝试在"value-of select“中连接函数,但我在代码TYPE_CU、ID_CU等中遇到了两个元素的问题。它必须在TYPE_CU中由"IV”标识,但我不知道为什么。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-02-10 19:20:49

您需要显示您尝试用来连接这些值的代码:

使用这段代码希望能帮助你:

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet 
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
    xmlns:xs="http://www.w3.org/2001/XMLSchema" 
    exclude-result-prefixes="xs" version="2.0">

    <xsl:output method="xml" indent="yes"/>

    <xsl:template match="/">
        <xsl:apply-templates/>
    </xsl:template>

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

    <xsl:template match="IKS[TYPE_CU='IV']">
        <xsl:copy>
            <xsl:apply-templates select="@* | node()"/>
        </xsl:copy>
        <POZN_1><xsl:value-of select="concat('Name: ' , NAME, ', Street: ', ADDRESS, ', TEL: ', TEL)"/></POZN_1>
    </xsl:template>

</xsl:stylesheet>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48708646

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档