0

SimpleXML を使用して XML を解析し、切り捨てたいと考えました。これは方法です:

public function truncate(SimpleXMLElement $xml)
{
    foreach ($xml->children() as $key => $value)
    {
        if ( !empty($key) && isset($xml->$key))
        {
            echo "unset $key";
            unset($xml->$key);
        }
    }

    echo $xml->asXML();
    exit;
}

最初の unset の後、これがスローされます:

警告: pat\Persistence\File\Text\XML::truncate(): pat/Persistence/File/Text/XML.php の 36 行目にノードが存在しません

まあ、メソッドの設定を解除したくありませんでした。

4

2 に答える 2

0

あなたは子供をforeachしていますが、親から削除しています。空の子を削除したい場合は、次のようにしてください:

foreach ($xml->children() as $child)
{
    if (empty($child)) {
        unset($child[0]);
    }
}
echo $xml->asXML();
于 2013-04-30T08:24:57.190 に答える