XML文件内容如下:<?xml version="1.0" encoding="GB2312"?>
<?xml-stylesheet href="parse.xsl" type="text/xsl" ?><Animal>
<Cat>Tom</Cat>
<Mouse>Jerry</Mouse>
</Animal>怎么写parse.XSL文件?
要求能呈现出来XML里面的信息。
比如形成:
Cat :TOM
Mouse:Jerry

解决方案 »

  1.   

    <?xml version="1.0" encoding="gb2312"?>
    <xsl:stylesheet version='1.0' 
    xmlns:xsl='http://www.w3.org/1999/XSL/Transform'
    xmlns:content = 'http://purl.org/rss/1.0/modules/content/'
    xmlns:xhtml='http://www.w3.org/1999/xhtml'
    xmlns:slash='http://purl.org/rss/1.0/modules/slash/'
        xmlns:dc='http://purl.org/dc/elements/1.1/'>
      
    <xsl:output method='xml' indent='yes' />  <xsl:template match='/'>
    <html>
    <head><title>xsl example</title></head>
    <body>
    Cat:<xsl:value-of select="//Animal/Cat"/><br/>
    Mouse:<xsl:value-of select="//Animal/Mouse"/><br/>
    </body>
    </html>
    </xsl:template></xsl:stylesheet>
    这是简单的写法.但是我认为你的xml文件写得不够合理,我改成这样:
    <?xml version="1.0" encoding="GB2312"?>
    <?xml-stylesheet href="parse.xsl" type="text/xsl" ?>
    <Animals>
    <Animal>
    <Class>Cat</Class>
    <Name>Tom</Name>
    </Animal>
    <Animal>
    <Class>Mouse</Class>
    <Name>Jerry</Name>
    </Animal>
    </Animals>
    相应的xslt文件写法如下:
    <?xml version="1.0" encoding="gb2312"?>
    <xsl:stylesheet version='1.0' 
    xmlns:xsl='http://www.w3.org/1999/XSL/Transform'
    xmlns:content = 'http://purl.org/rss/1.0/modules/content/'
    xmlns:xhtml='http://www.w3.org/1999/xhtml'
    xmlns:slash='http://purl.org/rss/1.0/modules/slash/'
        xmlns:dc='http://purl.org/dc/elements/1.1/'>
      
    <xsl:output method='xml' indent='yes' />  <xsl:template match='/'>
    <html>
    <head><title>xsl example</title></head>
    <body>
    <xsl:for-each select="//Animals/Animal">
    <xsl:value-of select="./Class"/> : <xsl:value-of select="./Name"/><br/>
    </xsl:for-each>
    </body>
    </html>
    </xsl:template></xsl:stylesheet>
      

  2.   

    同意楼上的,但这样改XML,虽然规范了,但也许把问题整复杂了。<xsl:for-each select="//Animal/*">
      <xsl:value-of select="node()"/> : <xsl:value-of select="."/><br/>
    </xsl:for-each>
      

  3.   

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