如何在PHP中解析XML文件

3

这个XML文件在此处。 我该如何在这个XML文件中获取源内容?


我的天啊,那个 XML 真是太丑陋了。你为什么还想从中获取任何东西呢? - dar7yl
这个文件很简单。MS Office 2007的docx文件XML OOXML更丑陋。 - Bruce Dou
DOM很好 -> $document = new DOMDocument(); $document->load($extrato); $root = $document->getElementsByTagName("OFX")->item(0); $stmttrn = $root->getElementsByTagName("STMTTRN"); - devasia2112
2个回答

15

实际上,有四种相对简单的方法可以读取XML文件:

  • DOM 使用DOM API(因此必须将整个文档加载到内存中)
  • SimpleXML 提供了一种非常简单而优雅的解析XML文档的方式(但缺少很多文档操作方法),它也会将整个文档加载到内存中
  • XMLReader 是一种基于流的XML拉解析器。它的使用不如上述两个选项直观,但在需要解析大型文档时它可以是一个救星(因为它不需要将整个文档加载到内存中并且操作XML)。好处是它允许你通过XMLReader::expand()DOM进行互操作。
  • XML Parser 是一个非常低级别的组件,允许你创建SAX解析器,这意味着你定义处理程序函数,将在读取XML文件时调用;实际上它们具有与XMLReader相同的好处(操作流)

我个人喜欢:

  • 当解析相对较小且不需要修改的XML文件时,使用SimpleXML
  • 当解析大型XML文件时,使用XMLReader

DOM 是一个好的选择 -> $document = new DOMDocument(); $document->load($extrato); $outer = $document->getElementsByTagName("你的外部标签")->item(0); $inner = $outer->getElementsByTagName("你的内部标签"); - devasia2112

4

PHP已经在核心或扩展中包含了XML解析器(我推荐SimpleXML)。

尝试使用它,如果您有任何特定问题,请随时向我们提问。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接