The XML file is here. How can I get the source content in this XML file?
Asked
Active
Viewed 4,150 times
3
-
My god that xml is fugly. Why would you want to get anything from it anyway? – dar7yl Nov 10 '09 at 07:19
-
This file is simply. the ms office 2007 docx file xml ooxml is more fugly. – Bruce Dou Nov 10 '09 at 07:30
-
DOM is good -> $document = new DOMDocument(); $document->load($extrato); $root = $document->getElementsByTagName("OFX")->item(0); $stmttrn = $root->getElementsByTagName("STMTTRN"); – devasia2112 May 11 '12 at 17:45
2 Answers
15
Actually there are four relatively simple ways to read an XML file:
DOM
which uses the DOM API (and therefore has to load the whole document into memory)SimpleXML
which provides a very simple and elegant way to parse XML documents (but lacks a lot of document manipulation methods), it also loads the whole document into memoryXMLReader
is a stream-based XML pull parser. It's usage is not as intuitive as the usage of both other options above, but it can be a life-saver when you have to parse large documents (as it does not need to load the whole document into memory and operates on the XML stream). The nice thing is that it allows you to inter-operate with theDOM
viaXMLReader::expand()
.XML Parser
is a very low-level component which allows you to create SAX parsers, which means that you define handler functions which will be called when reading the XML file; essentially they have the same benefits as theXMLReader
(operating on streams)
My personal favorites are:
SimpleXML
when parsing relatively small XML files without the need to modifiy themXMLReader
when parsing large XML files

Stefan Gehrig
- 82,642
- 24
- 155
- 189
-
DOM is the good one -> $document = new DOMDocument(); $document->load($extrato); $outer = $document->getElementsByTagName("your_outer_tag")->item(0); $inner = $outer->getElementsByTagName("your_inner_tag"); – devasia2112 May 11 '12 at 17:45
4
PHP already includes XML parsers in the core or as extensions (i recommend SimpleXML).
Try to use it and then ask us if you have any specific problem.

pablasso
- 2,479
- 2
- 26
- 32