как очистить данные веб-страницы, не теряя теги - PullRequest
0 голосов
/ 18 марта 2011

Я пытаюсь очистить веб-данные с помощью php и dom xpath.Когда я сохраняю $ node-> nodeValue в своей базе данных или даже если пытаюсь отобразить его, все теги, такие как <p> и <br>, отсутствуют.Таким образом, я получаю все пункты соединены.Как решить эту проблему

Ответы [ 2 ]

3 голосов
/ 18 марта 2011

Если у вас есть узел и вам нужно все его содержимое, как есть, вы можете использовать эту функцию:

function innerHTML(DOMNode $node)
{
  $doc = new DOMDocument();
  foreach ($node->childNodes as $child) {
    $doc->appendChild($doc->importNode($child, true));
  }
  return $doc->saveHTML();
}
0 голосов
/ 18 марта 2011

Если вы просматриваете DOM, скорее всего, больше нет тегов для просмотра. Теги теперь являются узлами в DOM - необработанный контент, содержащийся в тегах, - это все, к чему у вас есть доступ в «строковой форме». Конечно, вы можете использовать информацию об узлах для восстановления тегов, но они не будут исходными тегами (например, вам придется выбрать <BR> или <br> - вы не будете знать, какой сайт изначально был) , Если вы хотите получить исходные теги с самого начала, получите исходный поток байтов, возвращенный выполненным вами GET / POST; не разбирайте его в дереве DOM.

...