2016-08-12 2 views
0

У меня есть следующий входной XML:Перемещение подобных узлов нового узла с использованием XSLT

<?xml version="1.0" encoding="UTF-8"?> 
<response> 
    <PQGetCareGaps> 
     <METHOD>GET</METHOD> 
     <contract>HXXXX</contract> 
    </PQGetCareGaps> 
    <FinalCareGapResults> 
     <Gap> 
     <CareGap>Colorectal Cancer Screening</CareGap> 
     <GapHistory> 
      <row> 
       <MEMBERID>AAAAAA000016-00</MEMBERID> 
      </row> 
     </GapHistory> 
     </Gap> 
    </FinalCareGapResults> 
    <FinalCareGapResults> 
     <Gap> 
     <CareGap>Adult BMI Assessment</CareGap> 
     </Gap> 
    </FinalCareGapResults> 
</response> 

Я хочу изменить приведенный выше XML таким образом, чтобы все <Gap> узлы должны подпадать под новый узел под названием <TestResults>. Полученный xml должен выглядеть следующим образом:

<?xml version="1.0" encoding="UTF-8"?> 
<response> 
    <PQGetCareGaps> 
     <METHOD>GET</METHOD> 
     <contract>HXXXX</contract> 
    </PQGetCareGaps> 
    <TestResults> 
     <Gap> 
     <CareGap>Colorectal Cancer Screening</CareGap> 
     <GapHistory> 
      <row> 
       <MEMBERID>AAAAAA000016-00</MEMBERID> 
      </row> 
     </GapHistory> 
     </Gap> 
     <Gap> 
     <CareGap>Adult BMI Assessment</CareGap> 
     </Gap> 
    </TestResults> 
</response> 

Не могли бы вы помочь мне?

ответ

0

Попробуйте

<?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="1.0"> 
    <xsl:template match="/"> 
     <xsl:apply-templates select="response" /> 
    </xsl:template> 
    <xsl:template match="response"> 
     <response> 
     <xsl:copy-of select="PQGetCareGaps" /> 
     <TestResults> 
     <xsl:for-each select="FinalCareGapResults/Gap"> 
      <xsl:copy-of select="." />   
     </xsl:for-each> 
     </TestResults> 
     </response> 
    </xsl:template> 
</xsl:stylesheet> 
Смежные вопросы