2012-04-24 71 views
0

我还想生成使用PHP我的XSL视觉上的“文档”。我想要做的是基本上转换我的xsl而不用XML,以显示XML字段将如何显示在HTML中。生成XSL文件

澄清:

的xsl:

<?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"/> 
    <xsl:template match="/"> 
     <head> 
     <title>My sample</title> 
    </head> 
    <body> 
     My sample element: <xsl:value-of select="root/element1"/> 
    </body> 
    </xsl:template> 
</xsl:stylesheet> 

请求的输出:

<html> 
<head> 
    <title>My sample</title> 
</head> 
<body> 
    My sample element: root/element1 
</body> 
</html> 

有谁知道如何做到这一点?

BR,Jake

+0

XSL是汉语语言的一个开始的家庭。你在谈论XSLT吗?也请重新写下这个问题 - 其中之一就是不要欠缺你想要达到的目标。 – 2012-04-24 19:16:24

+1

请给出一些XSL的确切示例以及您想要从中创建的内容。 (通过“精确”我的意思是不是挥手“这样的事情”,而是一个完整的描述。) – Tomalak 2012-04-24 19:16:27

+0

请编辑的问题,并解释什么意思,放在“文档XSLT” - 这是不明确所有。指定的所需输出与XSLT文档无关 - 您确定您知道您想要什么吗? – 2012-04-25 01:47:12

回答

1

XSLT是输入驱动的。如果会为不同的输入产生不同的输出。

在任何真实世界的场景,比你简单的例子更复杂,看代码没有任何输入运行通过它意味着你不能说什么输出会是什么样子。

为您简单的例子,你可以运行XSLT样式表thorugh另一个XSLT样式表。

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

    <xsl:template match="*"> 
    <xsl:value-of select="concat('&lt;', name())" /> 
    <xsl:apply-templates select="@*" /> 
    <xsl:value-of select="'&gt;'" /> 
    <xsl:apply-templates select="*" /> 
    <xsl:value-of select="concat('&lt;/', name(), '&gt;')" /> 
    </xsl:template> 

    <xsl:template match="@*"> 
    <xsl:value-of select="concat(' ', name(), '=&quot;', ., '&quot;')" /> 
    </xsl:template> 

    <xsl:template match="xsl:*"> 
    <xsl:apply-templates select="*" /> 
    </xsl:template> 

    <xsl:template match="xsl:value-of"> 
    <xsl:value-of select="concat('{{value-of: ', @select, '}}')" /> 
    </xsl:template> 

    <!-- add appropriate templates for the other XSLT elements --> 
</xsl:stylesheet> 

与样品,这将产生串

<head><title></title></head><body>{{value-of: root/element1}}</body> 

然而,部分是比较麻烦的问题“为其他XSLT元素添加相应的模板”。您的输出将按照输入的顺序(如我所说,XSLT是输入驱动的)。你的XSLT程序将最有可能来奠定的出路,因为它会产生相同的输出,所以产生明智的文档从它可能会觉得很有点困难比你想象的。

+0

谢谢。这就是我所寻找的。我一直在试图添加一些额外的功能,我需要,但没有成功。你可以请求告诉我如何显示if语句和for-each循环吗?此外,我不能弄清楚如何在上面转换后保留html中的文本。我编辑了上面的例子来解释我在做什么 – user439781 2012-04-30 10:18:55