我正在构建一个Web表单,在这个表单中,我的站点上的管理员可以将XML添加到一个文本区域,并将其提交到一个数据库表中,但是对于解析XML的最佳方法,我有点困惑。
PHP脚本需要解析XML,如果有任何解析错误,它应该返回错误消息和行/列,解析器将在其中停止,并将其发送给提交表单的管理员。解析后,需要访问DOM,使用xpath对节点和属性的存在进行多次检查。
如果我使用 xml_create_parser() 和 xml_parse() ,如果返回了false,我可以获取我所追求的详细错误信息。但是,在解析XML之后,我无法访问它的DOM。如果我使用 DOMDocument::loadXML() 从我读到的内容来看,它不会抛出解析错误的异常,它只是将它们输出到PHP日志。
xml_create_parser()
xml_parse()
DOMDocument::loadXML()
如果我第一次尝试的话会是一个很棒的表演吗 XMLIB PARSER() 如果成功了,跑吧 domDocument::loadXML()。 ,考虑到文件大多小于10KB,少数为10-20KB?有人知道更好的方法吗?
XMLIB PARSER()
domDocument::loadXML()。
您可以启用 libxml_use_internal_errors 然后-如果domdocument::load()失败-查询详细的错误消息 libxml_get_errors()
<?php $xml = '<a> <b>xyz</b> <c> </a>'; libxml_use_internal_errors(true); $doc = new DOMDocument; if ( !$doc->loadxml($xml) ) { $errors = libxml_get_errors(); var_dump($errors); }