2014-11-20 4 views
-1

У меня есть текущий XML-файл, как показано ниже.Преобразование XML с использованием XSLT

<INVOICES> 
    <INVOICE> 
    <HEADER> 
     <DocumentID>001500113139_1260538</DocumentID> 
     <DocumentID>001500113138_1262778</DocumentID> 
     <DocumentID>001500113137_1262762</DocumentID> 
     <DocumentID>001500113136_1260522</DocumentID>    
    </HEADER> 
    </INVOICE> 
</INVOICES> 

Это преобразование должно быть преобразовано в формат ниже, используя XSLT.

<Batches> 
    <Batch ID="20141119"> 
     <Documents> 
     <Document ID= 001500113139_1260538 /> 
     <Document ID= 001500113138_1262778 /> 
     <Document ID= 001500113137_1262762 /> 
     <Document ID= 001500113136_1260522 /> 
     </Documents> 
    </Batch> 
</Batches> 

Как сопоставить элементы Xml с атрибутами. Может ли кто-нибудь предложить, пожалуйста.

Заранее спасибо.

+0

[Эта ссылка может помочь вам] (http://stackoverflow.com/questions/655411/converting-xml-elements-to-xml-attributes-using-xslt) –

+0

Покажите нам, что у вас есть, и сообщите нам, где вы застряли. Кстати, ваш выходной формат недействителен, поскольку атрибуты «ID» не цитируются. –

ответ

0

попробовать что-то вроде этого

<xsl:template match="/"> 
    <Batches> 
     <Batch ID="20141119"> 
     <xsl:for-each select="//DocumentID"> 
      <Document> 
      <xsl:attribute name="ID"> 
       <xsl:value-of select="."/> 
      </xsl:attribute> 
      </Document> 
     </xsl:for-each> 
     </Batch> 
    </Batches> 
    </xsl:template> 
+0

Большое спасибо. Это отлично работает для моего сценария. – user3419159