Как сохранить <p></p> с XPATH? - PullRequest
       29

Как сохранить <p></p> с XPATH?

2 голосов
/ 22 октября 2011

Я использую XPATH для удаления неопрятных тегов HTML,

$nodeList = $xpath->query("//*[normalize-space(.)='' and not(self::br)]");
    foreach($nodeList as $node) 
    {
        $node->parentNode->removeChild($node);
    }

удалит ужасный ввод, подобный этому,

<p><em><br /></em></p>
<p><span style="text-decoration: underline;"><em><br /></em></span></p>

, но также удалит удар img tag, который яхочу сохранить,

<p><img title="picture summit" src="images/32913430_127001_e.jpg" alt="picture summit" width="590" height="366" /></p>

Как мне сохранить ввод img tag с XPATH?

Ответы [ 2 ]

1 голос
/ 22 октября 2011

Использование :

//p[not(descendant::*[self::img or self::br]) and normalize-space()='']
0 голосов
/ 22 октября 2011

Может быть, вы могли бы использовать выражение XPath 1.0, подобное приведенному ниже, для удаления ненужных абзацев:

//p[count(text())=0 and count(img)=0]
...