2017-11-03 1 views
0

xslt 코드를 따르는 데 도움이 필요합니다. 나는이 입력으로 :XSLT 자식 노드 텍스트를 부모 노드에 복사

<book> 
     <book1> 
      <name>abc</name> 
      <revision>1</revision> 
     </book1> 
     <book2> 
      <name>pqr</name> 
      <author>def</author> 
     </book2> 
</book> 

로 내 예상 출력 : 나는 */텍스트()하지만 난 단지 첫 아이의 텍스트를 얻을 수를 사용하여 값 노드에 대한 값을 가져 오는 시도

<book> 
     <item> 
      <name>book1</name> 
      <value>abc1</value> 
     </item> 
     <item> 
      <name>book2</name> 
      <value>pqrdef</value> 
     </item> 
</book> 

. 미래에는 그러한 많은 자식 요소가 있습니다.

미리 감사드립니다.

안부, Minakshi

+0

XSLT 파일을 공유하십시오. – JLRishe

답변

0

이 스타일은 당신이 원하는 걸 줄 것입니다. boonK 요소의 자식이 증가하더라도 템플릿을 변경할 필요가 없습니다.

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

    <xsl:output method="xml" encoding="UTF-8" indent="yes"/> 

    <xsl:template match="book"> 
     <xsl:copy> 
      <xsl:apply-templates select="*"/> 
     </xsl:copy> 
    </xsl:template> 

    <xsl:template match="book/*"> 
     <item> 
      <name> 
       <xsl:value-of select="name()"/> 
      </name> 
      <value> 
       <xsl:for-each select="*"> 
        <xsl:value-of select="."/> 
       </xsl:for-each> 
      </value> 
     </item> 
    </xsl:template> 

</xsl:stylesheet> 
+0

도움을 주셔서 감사합니다. 잘 작동한다. 내 xslt는 각 루프마다 for를 제외하고 당신과 비슷했습니다. 나는 이제 해결 된 많은 여분의 공간을 얻고있었습니다. 감사 –

관련 문제