我之前使用过XML Parser,虽然它工作正常,但我对它一般不满意,感觉就像我在使用基本功能的东西时使用变通方法.
我最近看过SimpleXML,但我还没有尝试过.它更简单吗?两者有哪些优点和缺点?你用过的其他任何解析器?
我不得不说SimpleXML取得了成功,因为它首先是一个用C语言编写的扩展,并且非常快.但其次,解析后的文档采用PHP对象的形式.所以你可以像"查询"一样$root->myElement
.
查看PHP的可用XML扩展,并参阅http://devzone.zend.com/243/和http://devzone.zend.com/1035/进行讨论.
XML Parser和SimpleXML之间的主要区别在于后者不是拉解析器.SimpleXML构建在DOM扩展之上,并将整个XML文件加载到内存中.像XMLReader这样的XML Parser只会将当前节点加载到内存中.您可以为特定节点定义处理程序,这些处理程序将在Parser遇到它时触发.这样更快,节省内存.你无法使用XPath支付费用.
就个人而言,我发现SimpleXml在DOM上提供的功能非常有限(因此很简单).你可以轻松地在DOM和SimpleXml之间切换,但我通常不会费心去直接使用DOM路由.DOM是W3C DOM API的一个实现,因此您可能熟悉其他语言,例如JavaScript.
当扩展名不可用时,这是一个非常有用的函数,用于快速简便的xml解析:
$value) { $php_stmt_att=$php_stmt.'[$x_tag]'.$add.'[$key] = $value;'; eval($php_stmt_att); } } } return $xml_array; } ?>
嗨,我认为SimpleXml非常有用.有了它,我使用xpath ;
$xml = simplexml_load_file("som_xml.xml"); $blocks = $xml->xpath('//block'); //gets alltags $blocks2 = $xml->xpath('//layout/block'); //gets all which parent are tags
我使用了很多xml配置,这有助于我快速解析它们.
SimpleXml
是写的,C
所以它非常快.
这取决于您尝试使用XML文件执行的操作.如果您只是尝试读取XML文件(如配置文件),那么Wicked Flea在建议SimpleXML时是正确的,因为它创建的数量相当于嵌套的ArrayObjects.例如,$ xml-> root-> child可以访问value.
如果您希望操作XML文件,最好使用DOM XML