2013-11-25 2 views
0

У меня есть XML со следующей структурой:XSLT - Повторяя родительский узел с дочерними узлами

<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> 

Преобразование XML в выходной XML с помощью XSLT-шоу:

<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?

+0

Ваш вывод должен быть идентичен вашему входу? Это будет mnake для очень тривиального xslt ... ' oerkelens

+0

Ваш вход и вывод * точно такие же * - где преобразование, которое вы хотите выполнить? – Tomalak

+0

Спасибо всем за ценные входы. Преобразование требуется для других частей xml. Правильно, что эта конкретная часть xml не претерпевает никаких преобразований и предложения помогли мне. Спасибо, миллион! – user2967948

ответ

0

Вы могли бы попробовать,

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> 
Смежные вопросы