首页 文章

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

提问于
浏览
0

我有一个我需要使用的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?无论如何,当我调用DOMDocument-> Load / loadXML方法时,我是否检查a)文档是否已加载b)使用外部资源验证XML文件(w3学校验证器是我所知道的唯一一个)c)if XML文件不正确,无论如何我可以纠正它?

感谢所有花时间阅读本文的人 .

最好的,Parijat Kalia

1 回答

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

相关问题