2017-03-21 1 views
0

아무도 내가 여기에없는 것을 알고 있습니까? 예를 들어, 코드 요소에 의해 분류 된 내보내기가 있습니다. SiteDataSet 아래에있는 각 사이트 요소를 표시하려고합니다. 때로는 사이트가 1 개뿐 인 반면 때로는 3 개 이상인 경우도 있습니다.xsl - 여러 개의 동일한 이름 중첩 요소를 가져 오는 방법?

여기 여기 XML

<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?> 
<export> 
    <run-date>03/20/2017 
     <code>items 
      <type>Job 
       <number>9999999990-01</number> 
       <SiteDataSet> 
        <Site>Accounting</Site> 
        <Site>Energy</Site> 
       </SiteDataSet> 
       <content><![CDATA[]]></content> 
      </type> 
     </code> 
     <code>items2 
      <type>Job 
       <number>9999999910-01</number> 
       <SiteDataSet> 
        <Site>Finance</Site> 
        <Site>Energy</Site> 
        <Site>Driving</Site> 
       </SiteDataSet> 
       <content><![CDATA[]]></content> 
      </type> 
     </code> 
    </run-date> 
</export> 

이며 여기 XSL

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

     <xsl:template match="/*/*"> 
       <xsl:element name="Posting"> 
         <xsl:for-each select="code/type"> 
           <xsl:element name="Job"> 
             <xsl:element name="Number"><xsl:value-of select="translate(./*[local-name()='number'],'-','')"/></xsl:element> 
             <xsl:element name="Sites"/> 
           </xsl:element> 
         </xsl:for-each> 
       </xsl:element> 
     </xsl:template> 
</xsl:stylesheet> 

인 XML 출력

<?xml version="1.0" encoding="utf-8"?> 
    <Posting> 
     <Job> 
      <Number>999999999001</Number> 
      <Sites/> 
     </Job> 
     <Job> 
      <Number>999999991001</Number> 
      <Sites/> 
     </Job> 
    </Posting> 
+0

''태그가 없으므로 XML 형식이 올바르지 않습니다. 또한 XSLT 일부 행이 누락 된 것 같습니다. '' 태그는 닫히지 않으며' 태그도 닫히지 않습니다. 질문에이 문제를 해결할 수 있습니까? 또한 예상 출력을 표시 할 수 있습니까? 감사! –

답변

0

난 그래서이 폐쇄 될 수있는 작동을 얻었다에게이다.

<xsl:element name="Sites"> 
    <xsl:for-each select="SiteDataSet/Site"> 
     <Site><xsl:value-of select="."/></Site> 
    </xsl:for-each> 
</xsl:element> 
관련 문제