【发布时间】:2010-06-16 15:34:02
【问题描述】:
我知道 SO 确实有大量的 XML XSLT php 合并线程。但是特定于php的我找不到我的问题:
$xml = new DOMDocument;
$xml->load("f.xml");
$xsl = 新的 DOMDocument; $xsl->load('test.xsl');
// 初始化和配置处理器 $proc = 新的 XSLTProcessor; $proc->importStyleSheet($xsl); // 导入 xsl 文档 $xml2=$proc->transformToXML($xml); 回声 $xml2;
并以一个 xml 文件为例:
<xsl:stylesheet version="1.0" xmlns:xsl="@987654321@;
<xsl:param name="owner" select="'Robert Kühn'"/>
<xsl:output method="xml" version="1.0" omit-xml-declaration="yes" indent="no"/>
<xsl:strip-space elements="*"/>
</xsl:stylesheet>
我的 xslt 文件看起来有点空。但是我尝试了“输出方法=“xml””。但它没有帮助.. xml 文件很大,我想不是那么重要<?xml version="1.0" encoding="UTF-8"?>
<xPac>
<xyz id="15603"><varrDaten id="15604" zeit="1271099572" rechte="1">Daten<vbuch><vsyautor>Alertz, Ulrich</vsyautor><vsytitel>Vom Schiffbauhandwerk zur</vsytitel><vsybarcode>20560194</vsybarcode><vsystatus>S</vsystatus></vbuch><vbuch><vsyautor>Ridolfi, Carlo�[Hrsg.]�</vsyautor><vsytitel>Vite dei Tintoretto da le</vsytitel><vsybarcode>20014784</vsybarcode><vsystatus>S</vsystatus></vbuch><vbuch><vsyautor>Ridolfi, Carlo�[Hrsg.]�</vsyautor><vsytitel> life of Tintoretto and o</vsytitel><vsybarcode>20074791</vsybarcode><vsystatus>S</vsystatus></vbuch></varrDaten></xyz></xPac>
问题:PHP 总是以文本或 html 形式返回数据,但不是以 XML 形式返回。我做错了什么?我只想用 xslt 编辑 XML 并保存回 XML(文件)。
感谢您的帮助!
【问题讨论】:
-
一个示例 XML 和 XSL 文件会更有帮助。
-
这里没有问题。我投票关闭。
-
xml 文件没有什么特别的(而且很大),我希望它适用于每个 xml 文件。问题更多@xslt 我猜所以我发布了。问题很简单:PHP 应该返回 XML(或 DOM 节点)而不是纯文本(没有标签)
-
所以你的问题是:为什么你这样做时得到的是纯文本而不是 XML?请给我们一个展示此行为的精简示例 XML 文件。
-
知道 XML 输入文件很大是无关紧要的。知道它是否有匹配的节点很重要。请提供输入文件的摘录。但最初,快速浏览一下,您的 XSL 似乎应该选择所有内容。