У меня есть страница с элементами, которые я пытаюсь разобрать. Я хочу, чтобы class1 и class2 представляли собой отдельный текст. Однако класс 2 существует внутри класса 1. Поэтому, если я выполняю textContent, он извлекает весь текст.Как получить текстовое содержимое, разделенное <BR> в использовании DOMDocument
Heres структуры ...
<div class='class1'>
Name <br/> <span class='class2'>Other Name</span>
</div>
Если я сделаю это ...
$dom = new DOMDocument();
$dom->loadHTMLFile($url);
$finder = new DomXPath($dom);
$classname="class2";
$nodes = $finder->query("//*[contains(@class, '$classname')]");
foreach($nodes as $n){
echo $n->textContent;
}
я могу получить class2 elemtn просто отлично. Но если я сделаю то же самое для класса 1. Я получаю textContent класса1, который также включает в себя содержимое класса2.
Как я могу извлечь их отдельно?
Спасибо! супер просто, теперь я чувствую себя глупо. Как мне получить четвертый элемент, так что я могу просто использовать один запрос – KyleK
Что-то вроде $ node-> childNodes-> item (4) -> textContent. Что, похоже, не работает? – KyleK
только что сделал $ node-> firstChild-> nextSibling-> nextSibling-> textContent. Не уверен, что это лучший способ. но он работает, поэтому Im happy – KyleK