Я делаю простой парсер для HTML, используя PHP DOM, и у меня проблема с новыми строками (\ r \ n) в моих выходных данных. Вот мой код (я знаю, что он может быть низкого качества, но он почти работает, и я начинающий;))
<?php
$html = file_get_contents('page_1_second.html');
$dom = new DOMDocument();
$internalErrors = libxml_use_internal_errors(true);
$dom->loadHtml('<?xml encoding="utf-8" ?>'.$html);
libxml_use_internal_errors($internalErrors);
$finder = new DomXPath($dom);
$classname = 'row1h';
$nodes = $finder->query("//*[contains(concat(' ', normalize-space(@class), ' '), ' $classname ')]");
$tmp_dom = new DOMDocument();
foreach($nodes as $node)
{
$tmp_dom->appendChild($tmp_dom->importNode($node,true));
}
$innerHTML = trim($tmp_dom->saveHTML());
$output = new DOMDocument();
$internalErrors = libxml_use_internal_errors(true);
$output->loadHtml('<?xml encoding="utf-8" ?>'.$innerHTML);
libxml_use_internal_errors($internalErrors);
foreach($output->getElementsByTagName('a') as $link)
{
echo
'<topic_title>'.$link->nodeValue.'</topic_title>'.
'<br>'.'/r/n'.
'<topic_desc>'.$link->getAttribute('title').'</topic_desc>'.
'<br><br>';
}
?>
Код выше дает мне вывод с \ r \ n в качестве текста, но я хочу новую строку:
<topic_title>Title ONE</topic_title><br>\r\n<topic_desc>DESC1</topic_desc><br><br><topic_title>Title two</topic_title><br>\r\n<topic_desc>DESC 2</topic_desc><br><br><topic_title>Title 3</topic_title><br>\r\n<topic_desc>DESC 3</topic_desc><br><br>
Я пытаюсь, и я не могу получить вывод выглядит следующим образом:
<topic_title>Title ONE</topic_title><br>
<topic_desc>DESC1</topic_desc>
<topic_title>Title two</topic_title><br>
<topic_desc>DESC 2</topic_desc><br>
<topic_title>Title 3</topic_title><br>
<topic_desc>DESC 3</topic_desc><br><br>
Я пытаюсь formatOutput = true;
, но это не работает.
Кто-нибудь может помочь мне решить эту проблему?