Как удалить текст из элементов div в DOMDocument()Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Как удалить текст из элементов div в DOMDocument()

Сообщение Anonymous »

У меня есть строка HTML, содержащая текст внутри некоторых элементов div. Мне нужно извлечь этот текст из элементов div. (Ради любопытства, эти дополнительные элементы div появлялись, когда пользователь копировал/вставлял их в редактируемый элемент div)
Начало html:

Код: Выделить всё

Text1

para
Text2

Text3


HTML, который мне нужен:

Код: Выделить всё

Text1
para
Text2
Text3

Мой план состоял в том, чтобы использовать XPath, чтобы найти все внутренние элементы div и «продвинуть» их содержимое в документ.

Код: Выделить всё

$doc = new DOMDocument();
$doc->loadHTML("Text1
para
Text2Text3", LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD);
$xpath = new DOMXPath($doc);
foreach ($xpath->evaluate('/div/div[not(@*)]') as $node) {
$frag = $doc->createDocumentFragment();
foreach ($node->childNodes as $child) {
$frag->appendChild($child);
}
node->replaceWith($frag);
};
Этот вариант работает, но его путают с элементами div, содержащими текст, а также другой HTML-код. Результат:

Код: Выделить всё

Text1
para
Text3
Почему отсутствует текстовый узел Text2?

Подробнее здесь: https://stackoverflow.com/questions/792 ... omdocument
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»