Разбор HTML с Php - PullRequest
       14

Разбор HTML с Php

0 голосов
/ 03 декабря 2009

Я не могу получить данные между тегами в массивы:

// Load the HTML string from file and create a SimpleXMLElement
$html_string = file_get_contents("data/csr.html"); /*the string really is in $html_string*/
$root = new SimpleXMLElement($html_string);

Проблема начинается здесь, когда я пытаюсь получить значение между тегами: div, h2 и span в массив

// Fetch all div, h2 and span values
$divArray = $hdlsArray = $dtlsArray = array();
    foreach ($root->div as $div) {
    $divArray[] = $div;
    echo "".$div."<br />";
}
foreach ($root->h2 as $h2) {
    $hdlsArray[] = $h2;
    echo "".$h2."<br />";
}
foreach ($root->span as $span) {
    $dtlsArray[] = $span;
    echo "".$span."<br />";
}

В результате получается пустая страница вместо печати фактических данных тега

Ответы [ 2 ]

2 голосов
/ 03 декабря 2009

В качестве альтернативы SimpleXMLElement я предлагаю Simple HTML DOM ( электронное руководство ). Я использовал его раньше и очень доволен результатами. Это позволяет вам использовать jQuery как селекторы, поэтому выборка всех значений div, h2 и span довольно проста.

1 голос
/ 03 декабря 2009

Эта страница говорит (о SimpleXML) "единственная проблема с ним состоит в том, что он будет загружать только действительный XML", но может обеспечить обходной путь для HTML.

«Связанные вопросы» в StackOverflow включают этот , но он описывает HTML внутри допустимых тегов XML.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...