簡體   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