如何在php中跳过xml解析错误

时间:2014-03-31 15:21:36

标签: php xml

我正在尝试使用php解析xml文档

第二行有错误的xml文档:

<?xml version="1.0" encoding="UTF-8"?>
<note>
<to/>receiver</to>
<from>sender</from>
<subject>subject comes here</subject>
</note>

用于解析此文档的PHP代码:

<?php

$parser=xml_parser_create();

function start($parser,$e_name,$e_att)
{
switch($e_name)
    {
    case "note":
    echo "-- note --<br>";
    break;
    case "TO":
    echo "to : ";
    break;
    case "FROM":
    echo " from ";
    break;
     case "SUBJECT":
    echo " subject : ";
    break;

    }
}

function stop($parser,$e_name)
{
echo "<br/>";
}

function char($parser,$data)
{
echo $data;
}

xml_set_element_handler($parser,"start","stop");

xml_set_character_data_handler($parser,"char");

$fp=fopen("error.xml","r");

//Read data
while ($data=fread($fp,4096))
  {
  xml_parse($parser,$data,feof($fp)) or
  die (sprintf("XML Error: %s at line %d",
  xml_error_string(xml_get_error_code($parser)),
  xml_get_current_line_number($parser)));
  }

//Free the XML parser
xml_parser_free($parser);
?> 

我收到错误:

XML错误:第3行的标记不匹配

它会导致提前解析文档,但我还需要解析剩余的文档。 因为<to/>喜欢html单一标签,请帮助我,我只是想知道 如何跳过此类错误并继续阅读具有此类内容的html / xml文档 使用php xml解析。

0 个答案:

没有答案