-3

タイトルで述べたように、XML ドキュメントからすべての空の要素を削除したいと思います。

とは、その要素またはその子要素にテキストノードがない要素を意味します。

phpQueryでそれを行うことは可能ですか?

4

1 に答える 1

1

このトピックの回答からゴードンのコードを使用しました: Reg expression to remove empty Tags (any of them)?

まず、彼の XPath クエリをメソッドに入れようとしましたが、クエリphpQueryObject::find()が正しくないという警告が表示されました。使用していて動作するはずなので、理由はわかりませんDOMXPath

とにかく、解決策はまだ非常に簡単でした。

$pqDoc = phpquery::newDocument() // phpQueryObject created some way. Doesn't matter here.
$xp = new DOMXPath($pqDoc->getDOMDocument());
foreach($xp->query('//*[not(node()) or normalize-space() = ""]') as $node) {
    $node->parentNode->removeChild($node);
}

これで空の要素が削除されましphpQueryObjectたが、実際には の参照に取り組んでいるため、変更した要素を引き続き使用できますDOMDocument

于 2013-04-16T11:16:50.610 に答える