1

我使用以下代码将 XML 转换为另一个 XML 文件。但我正在尝试使用 XSLT 从一组字符串创建一个新的 XML 文件。

$xsl  = simplexml_load_file('template.xsl');
$xslt = new XSLTProcessor;
$xslt->setParameter('', 'foo', $foo);
$xslt->setParameter('', 'bar', $bar);
$xslt->setParameter('', 'test', $test);

$xslt->importStyleSheet($xsl);

$data = $xslt->transformToXML($xml);

所以我正在做的是将参数传递给template.xsl创建节点并将结果输出传递给$dataPHP 然后将其写入文件。

但我所期望的示例代码首先读取 XML 文件并将其保存到变量$xml. 但我没有读取 XML 文件,因为我正在为数据生成字符串,这会产生警告:

PHP 警告:XSLTProcessor::transformToXml() 期望参数 1 为对象,给定 null

我意识到我可以使用 PHP 来编写 XML - http://www.developerfusion.com/code/3944/how-to-create-xml-files/ - 但我想知道如何使用 XSLT 来做到这一点。

4

1 回答 1

1

但我没有读取 XML 文件,因为我正在为数据生成字符串,这会生成'PHP Warning: X SLTProcessor::transformToXml() expects parameter 1 to be object, null given'。我意识到我可以使用 PHP 来编写 XML - http://www.developerfusion.com/code/3944/how-to-create-xml-files/ - 但我想知道如何使用 xslt 来做到这一点。

您可以使用任何 XML 文档作为第一个参数传递XSLTProcessor::transformToXml()

它可以是一个人工文档,例如<t/>——从文件中加载。

为了不加载任何额外的 XML 文件,可以使用已经加载的 XSLT 文件:

 $data = $xslt->transformToXML($xsl);

在转换中,您将有一个模板(匹配/),在此模板中,您将生成所需的 XML 文档 - 结果。

于 2012-12-29T16:45:31.073 回答