PHP5中不同的XML解析库之间有什么区别?

Nac*_*ual 8 php xml xhtml parsing

最初的问题如下,但我更改了标题,因为我认为找到具有相同疑问的其他人会更容易.最后,XHTML文档是一个XML文档.

这是一个初学者的问题,但我想知道您认为哪个是PHP5中解析XHTML文档的最佳库?

我已经使用Tidy从HTML文件(使用Word:S创建)生成了XHTML,并知道我需要替换它们中的一些元素(比如和元素,替换一些属性)

标签).

我没有非常使用XML,在PHP(Simple XML,DOM等)中解析似乎有很多选项,我不知道是否所有这些都可以做我需要的,这是最容易的使用.

抱歉我的英语,我是阿根廷人.谢谢!

我有更多的信息:我有很多HTML页面,在Word 97中完成.我使用Tidy进行清理并在XHTML Strict中进行清理,所以现在它们都是XML兼容的.我想使用XML解析器来查找一些元素并替换它们(我这样做的逻辑并不重要).例如,我希望所有页面都使用相同的CSS样式表和类属性,以实现统一的外观.它们都是包含法律文件的静态页面,没有什么奇怪的.我应该使用哪些扩展程序?SimpleXML够用吗?我是否应该学习DOM而不是更难?

Aro*_*eel 6

您可以使用SimpleXML,它包含在默认的PHP安装中.此扩展提供了对XML结构的轻松面向对象访问.

还有DOM XML.这个扩展的"缺点"是它使用起来有点困难,默认情况下它不包括在内.


tro*_*skn 4

只是为了澄清这里的混乱。PHP 有许多 XML 库,因为 php4 在这方面没有很好的选择。从 PHP5 开始,您可以在SimpleXmlDOM基于 sax 的 expat 解析器之间进行选择。后者也存在于 php4 中。php4 还有一个 DOM 扩展,这与 php5 的不同

\n\n

DOM 和 SimpleXml 是同一问题域的替代方案;它们将文档加载到内存中,并让您以树结构的形式访问它。DOM 是一个相当庞大的 api,但它也非常一致,并且以多种语言实现,这意味着您可以跨语言重用您的知识(例如在 Javascript 中)。SimpleXml 最初可能更容易。

\n\n

SAX 解析器是一个不同的野兽。它将 xml 文档视为标签流。如果您正在处理非常大的文档,这非常有用,因为您不需要将其全部保存在内存中。

\n\n

对于您的使用,我可能会使用 DOM api。

\n