2011-12-29 8 views
2

要素内の要素を削除し、その要素が最後の要素の場合、親要素は空の要素に短縮されます。PHPでDOMDocumentを使用してXML要素が空であるかどうかを検出する方法

例:

スタート: <element><child1>Inner HTML</child1><child2>Inner HTML</child2></element>

私はCHILD2を削除し、私が取得: <element><child1>Inner HTML</child1></element>

私はCHILD1を削除し、私が取得: <element/>

今、私はしないことを望みます要素が空であればそれを置き換えることができるかどうかを検出する方法があります。 PHPでDOMDocumentを使ってどうすればいいですか?あなたは要素がlist of child nodesの長さを検査することにより、空であるか否かを判断することができるはずです

おかげで...

+0

は、あなたが何を意味するか "が起こるのではないことをしたいですか?"代わりに何をしたいですか?他の要素を削除するのにどのようなコードを使用していますか? –

+0

この説明では、コードに確実に記述する必要があります。要素が空であるかどうかを検出したい場合は、単に削除後またはチェック前にhttp://www.php.net/manual/en/domnode.haschildnodes.php – Eugene

+0

実際には、エラーが見つかりました。何かに。この質問を投稿して申し訳ありません... –

答えて

2

:だけではない要素が別の要素の子ノードできること

$isEmpty = $elem->childNodes->length === 0; 

注意また、CDATA sections,comments,plain textである。

+0

実際には、私はエラーが見つかりました...それは何かのためだった。この質問を投稿して申し訳ありません...あなたの答えをありがとう... –

2

the PHP manualからの借入:

count($elem->children()); 

をので、空かどうかを確認するために:

$isEmpty = count($elem->children()) === 0 ? true : false; 
関連する問題