【发布时间】:2019-07-12 18:53:43
【问题描述】:
我有一个具有以下结构的 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结构?
【问题讨论】:
-
您的输出应该与您的输入相同?这将是一个非常微不足道的 xslt...
<xsl:template match="/"><xsl:copy-of select="*></xs;</template>,但这就是你想要的吗? -
你的输入和输出完全一样 - 你想在哪里进行转换?
-
感谢大家的宝贵意见。 xml 的其他部分需要转换。 xml 的这个特定部分没有经过任何转换,并且这些建议对我有用,这是正确的。非常感谢!