【发布时间】:2018-03-09 01:25:26
【问题描述】:
我在一个名为“jobs”的网站目录文件夹中有多个 xml 文件,我一直在尝试将该作业文件夹中的任何 xml 文件合并到一个名为 Output.xml 的 xml 文件中
我的 PHP 代码部分有效,但我的问题是它不会将该作业目录中的所有 xml 文件合并到 output.xml 中,除非我指定文件名。现在我有点卡住了,因为我不知道为什么它只在那个 output.xml 中显示一个。
这里有一些示例代码:
XML1
<JobRecords>
<JobRecord>
<Brand>Corporate1</Brand>
<WorkTypes>
<WorkTypeRecord>
<Title>Permanent1</Title>
</WorkTypeRecord>
</WorkTypes>
</JobRecord>
</JobRecords>
XML2
<JobRecords>
<JobRecord>
<Brand>Corporate2</Brand>
<WorkTypes>
<WorkTypeRecord>
<Title>Permanent2</Title>
</WorkTypeRecord>
</WorkTypes>
</JobRecord>
</JobRecords>
XSLT(与所有 XML 文件在同一目录中保存为 .xsl 文件)
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="/">
<files>
<xsl:copy-of select="/jobs"/>
<!-- add more as needed -->
</files>
</xsl:template>
</xsl:stylesheet>
PHP(首先加载 XML 和 XSL 脚本,然后转换/输出)
// LOAD XML SOURCE
$xml = new DOMDocument('1.0', 'UTF-8');
$xml->load('xml1.xml');
// LOAD XSL SOURCE
$xsl = new DOMDocument('1.0', 'UTF-8');
$xsl->load('XSLT_Script.xsl');
// TRANSFORM XML
$proc = new XSLTProcessor;
$proc->importStyleSheet($xsl);
$newXML = $proc->transformToXML($xml);
// SAVE NEW XML
file_put_contents('output.xml', $newXML);
【问题讨论】:
-
我的回答对您有帮助吗? ;-)
-
给新手的建议:如果一个答案解决了您的问题,请点击旁边的大复选标记 (✓) 接受它,也可以选择投票(投票至少需要 15 个声望)点)。如果您发现其他答案有帮助,请给他们投票。接受和投票有助于未来的读者。请看【相关帮助中心文章】[1] [1]:stackoverflow.com/help/someone-answers
-
我的回答解决了你的问题吗?