Как удалить имена тегов, но оставить внутреннее содержимое HTML, используя DOMDocumentPhp

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Как удалить имена тегов, но оставить внутреннее содержимое HTML, используя DOMDocument

Сообщение Anonymous »

У меня ужасно формируется html. Спасибо MS Word 10 "сохранить как htm, html". Вот пример того, что я пытаюсь очистить.

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






Pros and Cons of a Website
 
(this is a sample of what it uses as line breaks. Take note of the  tag).

A SAMPLE TEXT

...same pattern in div 1
...same...


Что мне нужно от всего этого:

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

...A SAMPLE TEXT
...same pattern in div 1
...same...
Что у меня есть на данный момент:

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

$dom = new DOMDocument;
$dom->loadHTML($filecontent, LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD);
$xpath = new DOMXPath($dom);
$body = $xpath->query('//html/body');
$nodes = $body->item(0)->getElementsByTagName('*');
foreach ($nodes as $node) {
if($node->tagName=='script') $node->parentNode->removeChild($node);
if($node->tagName=='a') continue;
$attrs = $xpath->query('@*', $node);
foreach($attrs as $attr) {
$attr->parentNode->removeAttribute($attr->nodeName);
}
}
echo str_ireplace(['', ''], '', $dom->saveHTML($body->item(0)));
Это дает мне:

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


Pros and Cons of a Website
 

A SAMPLE TEXT

...same pattern in div 1
...same...

это меня устраивает, но я хочу убрать тег body. Я также хочу, чтобы h1 и его содержимое тоже были доступны, но когда я говорю:

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

if($node->tagName=='script' || $node->tagName=='h1') $node->parentNode->removeChild($node);
происходит что-то странное:

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

 
 becomes 
 

Я нашел несколько очень хороших ответов, например:
  • Как получить внутренний HTML-код DOMNode? (Ответ Хаима Эвги, я не знаю, как его правильно реализовать, ответ Keyacom тоже), Ответ Марко Марсалы - самый близкий, который я получил, но все элементы div сохранили свои классы.


Подробнее здесь: https://stackoverflow.com/questions/793 ... omdocument
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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