XML编码HTML到XSLT

时间:2015-11-30 05:52:32

标签: html xml xslt

如何使用XML编码的HTML并创建XSLT?我有xml / html页面链接到XSLT文件,它显示文档中的文本,但不会显示链接或图片。 XML / HTML中的图像位于xml和xslt所在文件夹中名为images的文件夹中。

<?xml version="1.0" ?>
<?xml-stylesheet type="text/xsl" href="XLST.xslt"?>

  <html>
    <head>
      <title>CATS! CATS! CATS!</title>
    </head>
    <body>
      <h1>CATS</h1>

      <p>
        <a href=" www.google.com">Visit Google...</a>
      </p>

      Cats like milk!
      <p>
        <image> <img src="Cats.jpg" alt="Cats, so cute!"/></image>
      </p>
    </body>
  </html>

和XSLT文件:

    <?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:template match="html">
    <xsl:apply-templates select="body" />


  </xsl:template>

  <xsl:template match="body">
    <img alt="">
      <xsl:attribute name="src">
        <xsl:value-of select="//Cats"/>
      </xsl:attribute>
    </img>
  </xsl:template>
</xsl:stylesheet>

1 个答案:

答案 0 :(得分:0)

将现有的xhtml文档转换为几乎完全相同的xhtml文档只需添加一些内容,这不是您通常会做的事情,但它相对容易。从仅包含身份模板的样式表开始:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

  <xsl:template match="@* | node()">
    <xsl:copy>
      <xsl:apply-templates select="@* | node()"/>
    </xsl:copy>
  </xsl:template>
</xsl:stylesheet>

这将完全按原样输出xhtml,然后您可以添加模板以补充源xhtml。例如,添加:

<xsl:template match="body">
  <xsl:copy>
    <xsl:apply-templates select="@*"/>
    <img alt="" src="(insert url here)"/>
    <xsl:apply-templates select="node()"/>
  </xsl:copy>
</xsl:template>

将在body元素的开头添加图像。它复制元素本身,然后复制它的属性,插入图像,然后复制子元素。