小编Rem*_*emi的帖子

PHP - 读取和修复大的无效XML文件

我必须阅读一些非常繁重的XML文件(介于200 MB和1 GB之间),对于其中一些文件来说,这些文件无效.让我举个小例子:

<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:g="http://base.google.com/ns/1.0" version="2.0">
  <item>
    <title>Some article</title>
    <g:material><ul><li>50 % Coton</li><li>50% Lyocell</li></g:material>
  </item>
</rss>
Run Code Online (Sandbox Code Playgroud)

显然,</ul>标签中缺少结束g:material标签.此外,开发此Feed的人应该将封闭的g:material内容放入CDATA其中,但他们没有...基本上,这就是我想要做的事情:添加这个缺失的CDATA部分.

我曾尝试使用SAX解析器来读取此文件,但在读取</g:material>标记时失败,因为</ul>标记丢失.我尝试过使用XMLReader,但基本上遇到了同样的问题.我可以用DomDocument :: loadHtml做一些事情,但是这个文件的大小与DOM方法并不真正兼容.您是否知道我如何才能简单地修复此Feed而无需为DomDocument购买大量内存来运行?谢谢.

php xml sax

6
推荐指数
1
解决办法
1640
查看次数

标签 统计

php ×1

sax ×1

xml ×1