PHP XML解析

Zaj*_*aje 6 php xml parsing simplexml domdocument

哪个是在PHP中解析XML文件的最佳方法?

首先
使用DOM对象

//code
$dom = new DOMDocument();
$dom->load("xml.xml");

$root = $dom->getElementsByTagName("tag");
foreach($root as $tag)
{
$subChild = $root->getElementsByTagName("child");

// extract values and loop again if needed
}
Run Code Online (Sandbox Code Playgroud)

第二步
使用simplexml_load方法

// code
$xml = simplexml_load_string("xml.xml");
$root = $xml->root;
foreach($root as $tag)
{
$subChild = $tag->child;
// extract values and loop again if needed
}
Run Code Online (Sandbox Code Playgroud)

注意:这是我所知道的两个.如果有更多填写.

想知道哪种方法最适合解析大型XML文件,哪种方法最快,无论方法需要实现的方式如何

大小将从500KB到2MB不等.解析器应该能够在最短的时间内解析小文件和大文件,并尽可能使用良好的内存.

Zaj*_*aje 4

我已经开始使用 XMLReader 来解析 XML 文件。经过一番谷歌搜索后,发现解析 XML 文件的最佳方式是,因为它不会将整个 XML 文件加载到内存中。假设我的 XML 文件有 5 MB,而使用 XMLReader 解析它时,我的 5 MB 内存不会被浪费。

//usage
$xml = new XMLReader();
$xml->XML($xmlString);
while($xml->read)
{
if($xml->localName == 'Something') // check if tag name equals something
{
//do something
}
}
Run Code Online (Sandbox Code Playgroud)

使用 XML Reader,我们可以查找当前标签是开始标签还是结束标签,并根据需要执行需要的操作。