【问题标题】:XML + Xslt -> Xml with PHP [duplicate]XML + Xslt -> Xml 与 PHP [重复]
【发布时间】: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;

<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>
并以一个 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>
我的 xslt 文件看起来有点空。但是我尝试了“输出方法=“xml””。但它没有帮助.. xml 文件很大,我想不是那么重要

问题:PHP 总是以文本或 html 形式返回数据,但不是以 XML 形式返回。我做错了什么?我只想用 xslt 编辑 XML 并保存回 XML(文件)。

感谢您的帮助!

【问题讨论】:

  • 一个示例 XML 和 XSL 文件会更有帮助。
  • 这里没有问题。我投票关闭。
  • xml 文件没有什么特别的(而且很大),我希望它适用于每个 xml 文件。问题更多@xslt 我猜所以我发布了。问题很简单:PHP 应该返回 XML(或 DOM 节点)而不是纯文本(没有标签)
  • 所以你的问题是:为什么你这样做时得到的是纯文本而不是 XML?请给我们一个展示此行为的精简示例 XML 文件。
  • 知道 XML 输入文件很大是无关紧要的。知道它是否有匹配的节点很重要。请提供输入文件的摘录。但最初,快速浏览一下,您的 XSL 似乎应该选择所有内容。

标签: php xml xslt


【解决方案1】:

你写道:

问题:PHP 总是返回数据 作为文本或 html 但不是 XML .. 什么 我做错了吗?我只想编辑 使用 xslt 的 XML 并保存回 XML (文件)。

答案:您的样式表正在按文档顺序复制每个文本节点。然后,在序列化过程中,所有结果文本节点都合并为一个。此行为来自内置模板。您的错误是没有提供任何描述您想要的结果的模板。

【讨论】:

  • 所以我的问题没有解决方案?还是我应该使用另一个 xsl 文件?
猜你喜欢
  • 1970-01-01
  • 2021-10-28
  • 1970-01-01
  • 2013-01-13
  • 1970-01-01
  • 2011-07-05
  • 2019-11-17
  • 1970-01-01
  • 2019-07-22
相关资源
最近更新 更多