如何将XML / XSLT文档嵌入到HTML页面中

时间:2014-10-04 17:53:41

标签: php html xslt embed

我有一个使用PHP / CSS3 / HTML5 / MYSQL创建的网页,它可以正常工作:该软件能够管理内容,自定义菜单等。 作为一个独立的项目,我有很多XML / XSLT格式的文档。

我想将文档包含在Web内容中,因此理想的解决方案应该是将XML / XSLT文档嵌入到Web中,但我不知道如何。

一些可能的解决方案:

  • 直接将XML包含在HTML文件中:这不起作用。
  • 使用php解析XML / XSLT并将其插入到HTML中:它可以工作,但所有工作都是在服务器端完成的,这不是一个好主意。
  • 将XML / XSLT嵌入到iframe中,但将iframe高度设置为内容的唯一方法是使用Javascript,这似乎是一个难看的解决方案。
  • 仅使用XSLT重写整个网络系统,这完全超出了我的时间安排的可能性。

将XSLT文档嵌入HTML页面的好方法是什么?还有更好的解决方案吗?

XML文档的简短示例:

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="documentation.xsl"?>
<document>
    <header-1 title="Introduction">
        <p>Any text into the XML documentation</p>
    </header-1>
</document> 

XSLT文件的简短示例:

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="html" encoding="utf-8" doctype-system="about:legacy-compat"/>
    <xsl:template match="//document">
        <xsl:apply-templates/>
    </xsl:template>

    <xsl:template match="header-1">
        <h1><xsl:value-of select="@title"/></h1><xsl:apply-templates/>
    </xsl:template>

    <xsl:template match="p">
        <span><xsl:apply-templates/></span>
    </xsl:template>
</xsl:stylesheet>

HTML页面的简短示例:

<!DOCTYPE html>
<html>
    <header><title>Test</title></header>
    <body>
        Here the XML/XSLT should be included    
    </body>
</html>

编辑:

使用PHP解析XML / XSLT的解决方案:

$xsltProc = new xsltProcessor();
$xsl = new DOMDocument();
$xsl->load('documentation.xsl');
$xsltProc->importStyleSheet($xsl);
$doc = new DOMDocument();
$doc->load('test.xml');
echo $xsltProc->transformToXML($doc);

0 个答案:

没有答案