gpt4 book ai didi

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

转载 作者:可可西里 更新时间:2023-11-01 13:26:33 25 4
gpt4 key购买 nike

我必须阅读一些相当大的 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>

很明显,少了一个</ul> g:material 中的结束标记标签。此外,开发此提要的人应该附上g:material内容进入CDATA ,他们没有...基本上,这就是我想做的:添加这个缺失的 CDATA部分。

我尝试使用 SAX 解析器读取此文件,但在读取 </g:material> 时失败了标记自 </ul>标签丢失。我试过使用 XMLReader 但遇到了基本相同的问题。我可能可以用 DomDocument::loadHtml 做一些事情,但这个文件的大小与 DOM 方法并不真正兼容。您是否知道我如何能够简单地修复此提要而无需为 DomDocument 的工作购买大量 RAM?谢谢。

最佳答案

如果文件太大而无法使用 Tidy扩展名,您可以使用 tidy CLI tool使文件可解析。

$ tidy -output my.clean.xml my.xml

之后,XML 文件格式正确,因此您可以使用 XMLReader 解析它们。由于 tidy 添加了“缺失的”(X)HTML 部分,因此您的原始文档代码位于该元素内。

关于PHP - 读取和修复大的无效 XML 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15679103/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com