Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/227.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 生成xsl文档_Php_Xslt_Transform - Fatal编程技术网

Php 生成xsl文档

Php 生成xsl文档,php,xslt,transform,Php,Xslt,Transform,我想使用php为我的xsl生成一个可视化的“文档”。我想做的基本上是在不使用XML的情况下转换xsl,以显示XML字段在HTML中的显示方式 澄清: xsl: 我的样品 我的示例元素: 请求的输出: <html> <head> <title>My sample</title> </head> <body> My sample element: root/element1 </body> <

我想使用php为我的xsl生成一个可视化的“文档”。我想做的基本上是在不使用XML的情况下转换xsl,以显示XML字段在HTML中的显示方式

澄清:

xsl:


我的样品
我的示例元素:
请求的输出:

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

我的样品
我的示例元素:root/element1
有人知道怎么做吗


BR,Jake

XSLT是输入驱动的。If将为不同的输入生成不同的输出

在任何比您的简单示例更复杂的真实场景中,在没有任何输入的情况下查看代码意味着您无法说出输出将是什么样子

对于您的简单示例,您可以通过另一个XSLT样式表运行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>
{{value of:root/element1}

然而,“为其他XSLT元素添加适当的模板”部分是难点。您的输出将按照输入的顺序进行(正如我所说的,XSLT是输入驱动的)。XSLT程序的布局很可能与它将要生成的输出不同,因此从中生成合理的文档可能比您想象的要困难得多。

XSL是一个语言家族。你在谈论XSLT吗?另外,请重写这个问题——首先,请不要低估您试图实现的目标。请给出一些XSL的确切示例以及您想从中创建什么。(我所说的“精确”并不是指“像那样”挥手,而是指一个完整的描述。)请编辑这个问题并解释您在“xslt文档”中的含义——这一点并不清楚。指定的所需输出与XSLT文档无关——您确定知道需要什么吗?谢谢。这就是我要找的。我一直在尝试添加一些我需要的额外功能,但没有成功。您能告诉我如何显示if语句和for each循环吗?此外,我也不知道如何在使用上述方法转换后将文本保留在html中。我编辑了上面的例子来解释我想做什么
<head><title></title></head><body>{{value-of: root/element1}}</body>