我有一个我需要使用的XML文件(随机资源)。我使用PHP DOM Document来处理这个文档,使用DOMXPath来查询对象。但是,XPath查询不返回任何类型的数据(resultset-> length = 0)。查询是正确的,我并不担心它的语法。我还尝试了DOMDOcument-> getElementsByTagName(“tag”),这也返回了null结果。
在上面的上下文中,当我调用
时,如何检查我的DOMDocument是否能够加载DOMDocument->Load('file.xml')
[also tried
$xmlFile = file_get_contents('file.xml')
DOMDocument->loadXML($xmlFile)]
我假设如果XML文件出错那么很可能我根本无法查询DOMDocument? 无论如何,我有没有检查是否 a)当我调用DOMDocument-> Load / loadXML方法时,文档被加载了 b)使用外部资源验证XML文件(w3学校验证器是我所知道的唯一一个) c)如果XML文件不正确,无论如何我可以纠正它?
感谢所有那些抽出时间阅读本文的人。
最佳, Parijat Kalia
答案 0 :(得分:0)
在做任何事之前尝试翻转它:
libxml_use_internal_errors(true);
然后在加载XML后,使用以下方法查找错误:
$errors = libxml_get_errors();
您可以迭代$errors
(它是libXMLError个对象的数组。)
例如:
libxml_use_internal_errors(true);
try
{
$doc = new DOMDocument();
$doc->load("somebadxmlfile.xml");
}
catch (Exception $e)
{
$errors = libxml_get_errors();
foreach ($errors as $error)
{
echo $error->message . " [ Line: " . $error->line . " | Column: " . $error->column . " | Level: " . $error->level . " | File: " . $error->file . " ]";
}
}