繁体   English   中英

XSLT-使用子节点重复父节点

[英]XSLT - Repeating Parent Node with Child Nodes

我有一个具有以下结构的xml:

<FlightDetails>
                        <CouponNumber>1</CouponNumber>
                        <ServiceClass>Y</ServiceClass>
</FlightDetails>
<FlightDetails>
                        <CouponNumber>2</CouponNumber>
<ServiceClass>Y</ServiceClass>
</FlightDetails>
<FlightDetails>
                        <CouponNumber>3</CouponNumber>
                        <ServiceClass>Y</ServiceClass>
</FlightDetails>

使用的xslt是:

<FlightDetails>
          <xsl:for-each select="FlightDetails/CouponNumber">
          <CouponNumber>
          <xsl:value-of select="." />
          </CouponNumber>
          </xsl:for-each>
          <xsl:for-each select="FlightDetails/ServiceClass">
          <ServiceClass>
          <xsl:value-of select="." />
          </ServiceClass>
          </xsl:for-each>
</FlightDetails>

使用xslt将xml转换为输出xml显示:

<FlightDetails>
<CouponNumber>1</CouponNumber>
<CouponNumber>2</CouponNumber>
<CouponNumber>3</CouponNumber>
<ServiceClass>Y</ServiceClass>
<ServiceClass>Y</ServiceClass>
<ServiceClass>Y</ServiceClass>
</FlightDetails>

但是,所需的输出xml应该如下所示:

<FlightDetails>
    <CouponNumber>1</CouponNumber>
    <ServiceClass>Y</ServiceClass>
</FlightDetails>
<FlightDetails>
    <CouponNumber>2</CouponNumber>
    <ServiceClass>Y</ServiceClass>
</FlightDetails>
<FlightDetails>
    <CouponNumber>3</CouponNumber>
    <ServiceClass>Y</ServiceClass>
</FlightDetails>

如何修改XSLT以实现上述输出xml结构?

你可以试试看

XSL:

 <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
       <xsl:output indent="yes" />

    <xsl:template match="/">
         <xsl:copy-of select="//FlightDetails"/>
    </xsl:template>
    </xsl:stylesheet>

输出:

<?xml version="1.0" encoding="UTF-8"?>
<FlightDetails>
      <CouponNumber>1</CouponNumber>
      <ServiceClass>Y</ServiceClass>
   </FlightDetails>
<FlightDetails>
      <CouponNumber>2</CouponNumber>
      <ServiceClass>Y</ServiceClass>
   </FlightDetails>
<FlightDetails>
      <CouponNumber>3</CouponNumber>
      <ServiceClass>Y</ServiceClass>
   </FlightDetails>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM