2013-04-30 92 views
0

具体位置,这是xml文件: -开始UL李从XML文件

<?xml-stylesheet type="text/xsl" href="m.xsl"?> 
<root> 
    <child_1 entity_id="1" value="Root Catalog" parent_id="0"> 
     <child_2 entity_id="2" value="Navigate" parent_id="1"> 
      <child_4 entity_id="4" value="Activities" parent_id="2"> 
       <child_10066 entity_id="10066" value="Physical1" parent_id="4"> 
        <child_10067 entity_id="10067" value="Cricket" parent_id="10066"> 
         <child_10068 entity_id="10068" value="One Day" parent_id="10067"/> 
        </child_10067> 
       </child_10066> 
       <child_10069 entity_id="10069" value="Test2" parent_id="4"/> 
       <child_10070 entity_id="10070" value="Test3" parent_id="4"/> 
       <child_10071 entity_id="10071" value="Test4" parent_id="4"/> 
       <child_10072 entity_id="10072" value="Test5" parent_id="4"/> 
       <child_5 entity_id="5" value="Physical" parent_id="4"/> 
      </child_4> 
      <child_4331 entity_id="4331" value="Region" parent_id="2"> 
       <child_4332 entity_id="4332" value="Asia" parent_id="4331"> 
        <child_4333 entity_id="4333" value ="India" parent_id="4332"> 
         <child_4334 entity_id ="4334" value = "Gujarat" parent_id="4333"/> 
        </child_4333> 
       </child_4332> 
      </child_4331> 
     </child_2> 
    </child_1> 
</root> 

这里我使用这种类型的XSLT: -

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
    <xsl:output method="html" indent="yes" omit-xml-declaration="yes"/> 

    <xsl:template match="*" mode="item"> 
    <li> 
     <xsl:value-of select="@value" /> 
     <xsl:apply-templates select="current()[*]" /> 
    </li> 
    </xsl:template> 

    <xsl:template match="*/*/*"> 
    <ul> 
     <xsl:if test="local-name(parent::*) = 'root'"><xsl:attribute name="id"><xsl:text disable-output-escaping="yes">first</xsl:text> </xsl:attribute></xsl:if> 
     <xsl:apply-templates select="*[1] | node()[current()/ancestor::*[3]]" mode="item"/> 
    </ul> 
    </xsl:template> 
</xsl:stylesheet> 

与此XSLT输出: -

  • 活动
    • Physical1
      • 蟋蟀
        • 一天
    • 的Test2
    • Test3的
    • TEST4
    • TEST5
    • 物理

集firsl UL ID id="frist"

如何其可能使用XSLT ... 感谢...

回答

1

更改当前模板:

<xsl:template match="*/*"> 
    <ul> 
    <xsl:if test="local-name(parent::*) = 'root'"><xsl:attribute name="id"><xsl:text disable-output-escaping="yes">first</xsl:text> </xsl:attribute></xsl:if> 
    <xsl:apply-templates select="*[1] | node()[current()/ancestor::*[3]]" mode="item"/> 
    </ul> 
    </xsl:template> 

这一个:

<xsl:template match="*/*/*"> 
    <ul> 
     <xsl:if test="local-name(parent::*) = 'root'"><xsl:attribute name="id"><xsl:text disable-output-escaping="yes">first</xsl:text> </xsl:attribute></xsl:if> 
     <xsl:apply-templates select="*[1] | node()[current()/ancestor::*[3]]" mode="item"/> 
    </ul> 
    </xsl:template> 
+0

是的,我使用上面的模板,但不插入UL查身份证,我有删除那么傻代码和更新新的代码它的帮助下完全看哪里是我的系统上进行的问题... – 2013-04-30 07:48:26