繁体   English   中英

验证并可能纠正我拥有的XML文件

[英]Validating and possibly correcting an XML file that I have

我有一个需要使用的XML文件(随机资源)。 我正在使用PHP DOM文档来处理该文档,并使用DOMXPath来查询对象。 但是,XPath查询不会返回任何类型的数据(resultset-> length = 0)。 该查询是正确的,并且我不担心它的语法。 我还尝试了DOMDOcument-> getElementsByTagName(“ tag”),它也返回空结果。

在上述情况下,当我调用DOMDocument时,如何检查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

在执行任何操作之前,请尝试将其翻转:

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 . " ]";
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM