空のノードを持つ XML 文字列があります。これを simplexml_load_string で解析すると、パーサーは空のノード (例<node></node>
) を空の SimpleXMLElement と解釈します。実際には、これらが空の文字列として表示されるか、完全に省略されることをお勧めします。
以下に示すように LIBXML_NOBLANKS を使用してみましたが、効果がないようです。状況を示すコードを次に示します。ノード「p2」は空です:
$xml = "<xml><p1>1</p1><p2></p2><p3>3</p3></xml>";
$obj = simplexml_load_string($xml, 'SimpleXMLElement', LIBXML_NOBLANKS);
header("Content-type: text/plain");
echo "STRING\n-----\n" . $xml;
echo "\n\nOBJ\n---\n" . print_r($obj,1);
echo "\n\nJSON\n----\n" . json_encode($obj);