PHPで解析したいXMLのこの小さなチャンクがあります。Works
タグは大丈夫です、私はすべての属性をうまく解析することができます。私が抱えている問題はDoesnt
タグにあります。タグにはテキストコンテンツが含まれているため、属性にアクセスできないようです。
<Export id="123" apples="pears">
<Works foo="bar" id="234"/>
<Doesnt bar="foo" id="345">Stack Exchange</Doesnt>
</Export>
次の(非常に単純な)コードを実行します。
$plain = '<Export id="123" apples="pear....esnt></Export>'; // as above
$sxe = simplexml_load_string($plain);
$json = json_encode($sxe);
$native = json_decode($json);
print_r($sxe, true);
print_r($native, true);
そして、私は次の出力になります:
SimpleXMLElement Object
(
[@attributes] => Array
(
[id] => 123
[apples] => pears
)
[Works] => SimpleXMLElement Object
(
[@attributes] => Array
(
[foo] => bar
[id] => 234
)
)
[Doesnt] => Stack Exchange
)
stdClass Object
(
[@attributes] => stdClass Object
(
[id] => 123
[apples] => pears
)
[Works] => stdClass Object
(
[@attributes] => stdClass Object
(
[foo] => bar
[id] => 234
)
)
[Doesnt] => Stack Exchange
)
ご覧のとおり、SimpleXMLElement
オブジェクトとオブジェクトの両方にタグstdClass
のすべての属性がありません。それらに到達するための回避策または代替手段はありますか?<Doesnt>