【问题标题】:How to repair malformed XML?如何修复格式错误的 XML?
【发布时间】:2010-09-26 08:41:36
【问题描述】:

使用 PHP 修复格式错误的 XML 文件的最佳做法是什么?例如 CDATA 部分包含非法字符。用正则表达式?或者执行一些 Linux 命令行工具?

【问题讨论】:

  • 这个问题很模糊,也许你应该详细说明你必须处理的格式错误的文档类型。 XML 在范围上非常通用,因此通用解决方案实际上并不可行。
  • XML 解析器非常严格,一些预处理有时可能会缓解这种情况,但要获得答案,您需要提供更多详细信息。一个牵强的猜测:对于 XML,您真的是指,也许是 XHTML
  • "使用正则表达式?"当然不是。见stackoverflow.com/questions/701166/…
  • 谢谢,具体来说,非法字符(未转义的实体)存在问题,即 Me 我自己和我 有时也直接获取和未转义的 HTML 代码 Some important here

标签: php xml


【解决方案1】:

Tidy

Tidy 是 Tidy HTML 的绑定 清洁和修复实用程序,它允许 你不仅要清洁,否则 操作 HTML 文档,还 遍历文档树。

// Specify configuration
$config = array(
           'indent'     => true,
           'input-xml'  => true,
           'output-xml' => true,
           'wrap'       => false);
// Tidy
$tidy = new tidy;
$tidy->parseFile('sample.xml', $config);
$tidy->cleanRepair();
// Output
echo $tidy;

【讨论】:

  • 这是完美的。但我需要将修复后的字符串保存到文件中。我尝试了file_put_contents("new.xml",$tidy),但创建的 new.xml 文件没有内容。
猜你喜欢
  • 2011-10-10
  • 1970-01-01
  • 2015-06-19
  • 1970-01-01
  • 2021-07-14
  • 1970-01-01
  • 2012-10-25
  • 1970-01-01
  • 2020-05-03
相关资源
最近更新 更多