PHP SimpleXML: Как я могу загрузить файл HTML? - PullRequest
3 голосов
/ 05 июля 2010

Когда я пытаюсь загрузить HTML-файл как XML, используя simplexml_load_string, я получаю много ошибок и предупреждений, касающихся HTML, и он не работает, есть ли способ правильно загрузить HTML-файл, используя SimpleXML?

В этом HTML-файле могут быть лишние пробелы и, возможно, некоторые другие ошибки, которые я бы хотел игнорировать SimpleXML.

Ответы [ 4 ]

21 голосов
/ 20 сентября 2012

Используйте DomDocument::loadHtmlFile вместе с simplexml_import_dom для загрузки неэффективных HTML-страниц в SimpleXML.

3 голосов
/ 05 июля 2010

Я бы предложил использовать PHP Simple HTML DOM . Я сам использовал его для чего угодно, от очистки страниц до манипулирования файлами шаблонов HTML, и он очень простой и достаточно мощный, и вполне может удовлетворить ваши потребности.

Вот несколько примеров из их документов, которые показывают, что вы можете делать:

// Create DOM from URL or file
$html = file_get_html('http://www.google.com/');

// Find all images
foreach($html->find('img') as $element)
       echo $element->src . '<br>';

// Find all links
foreach($html->find('a') as $element)
       echo $element->href . '<br>'; 
0 голосов
/ 11 сентября 2016

Вот небольшой код для загрузки внешней html-страницы, затем проанализируйте его с помощью простого xml.

<code>    //suppresses errors generated by poorly-formed xml
    libxml_use_internal_errors(true);

    //create the html object
    $html = new DOMDocument();

    //load the external html file
    $html->loadHtmlFile('http://blahwhatever.com/');

    //import the HTML object into simple xml
    $shtml = simplexml_import_dom($html);

    //print the result
    echo "<pre>";
    print_r($shtml);
    echo "
";
0 голосов
/ 05 июля 2010

check эта справочная страница, одна из этих опций (например, LIBXML_NOERROR) может помочь вам ... но имейте в виду, что html не обязательно является допустимым xml, поэтому анализ его как xml может не работать.

...