2011-09-13 26 views
2

XML文書を動的に作成するスクリプトがあります。つまり、子供の深さは不明です。子レベルが不明なときに、動的にXML文書用のXSLTを作成することは可能ですか?動的XML動的ネストのXSLT

例#1:

<root> 
    <object type="set"> 
     <name>Test1</name> 
     <object type="set"> 
      <name>Test11</name> 
     </object> 
    </object> 

    <object type="set"> 
     <name>Test2</name> 
    </object> 
</root> 

出力#1:

<html> 
    <body> 
     <div>Test1 
      <div>Test11</div> 
     </div> 
     <div>Test2</div> 
    </body> 
</html> 

例#2(子供が変更):

<root> 
    <object type="set"> 
     <name>Test1</name> 
     <object type="set"> 
      <name>Test11</name> 
      <object type="set"> 
       <name>Test111</name> 
      </object> 
     </object> 
    </object> 

    <object type="set"> 
     <name>Test2</name> 
     <object type="set"> 
      <name>Test22</name> 
     </object> 
    </object> 
</root> 

出力#2:

<html> 
    <body> 
     <div>Test1 
      <div>Test11 
       <div>Test111</div> 
      </div> 
     </div> 
     <div>Test2 
      <div>Test22</div> 
     </div> 
    </body> 
</html> 

答えて

1

これはあなたの望む結果を与える必要があります:

<?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" indent="yes"/> 

    <xsl:template match="/"> 
     <html> 
      <body> 
       <xsl:apply-templates /> 
      </body> 
     </html> 
    </xsl:template> 

    <xsl:template match="object"> 
     <div> 
      <xsl:value-of select="./name"/> 
      <xsl:apply-templates /> 
     </div> 
    </xsl:template> 

    <xsl:template match="name" /> 

</xsl:stylesheet> 
+0

はどうもありがとうございました!私はそれを達成しようとしましたが、それが容易に行えるとは決して考えませんでした。 – huuerequer

関連する問題