#php #xml #xpath
#php #xml #xpath
Вопрос:
Вот мой код:
$xpath_query = $xpath->query('//div[@class="paragraph-content"]//h2[1]');
$i = 0;
foreach($xpath_query as $header){
if (!empty($header->nodeValue) amp;amp; $i == 0){
$replacement = $dom->createDocumentFragment();
$replacement ->appendXML("<h1>$header->nodeValue</h1>");
$header->parentNode->replaceChild($replacement , $header);
}
$i ;
}
Я беру <h2>
тег в xpath и заменяю его на <h1>
Там, где в <h2>
теге есть значение, подобное этому «Набранному для hike amp; trail», и оно заменяется на <h1>
tag, текст не отображается.
«amp;» или amp;amp приводит к прерыванию замены, $header->nodeValue
как я могу избежать $header->nodeValue
, имея в виду, есть ли случаи в строке, где у меня есть <br>
тег или amp;amp. Когда у меня есть <br>
тег или есть amp; в тексте, это прерывает замену.
Ответ №1:
Возможно, вам потребуется убедиться, что объекты закодированы при создании HTML (я использовал htmlentities()
)…
$replacement ->appendXML("<h1>".htmlentities($header->nodeValue)."</h1>");
Ответ №2:
Я решил проблему, используя это :
$replacement ->appendXML("<h1>".htmlspecialchars($header->nodeValue)."</h1>");