XMLは次のとおりです。
<Routes>
<Route type="source">
<Table>
<Tablename>incoming</Tablename>
<Fields>
<Fieldsname ref="description" name="Route Name">description</Fieldsname>
<Fieldsname name="CID Match">cidnum</Fieldsname>
<Fieldsname name="DID Match">extension</Fieldsname>
<Fieldsname ref="dest">destination</Fieldsname>
</Fields>
</Table>
</Route>
</Routes>
次に、PHPでのインスタンス化:
$doc = new SimpleXMLElement('routingConfig.xml', null, true);
print_r($doc->Route[0])
これを示しています:
SimpleXMLElement Object
(
[@attributes] => Array
(
[type] => source
)
[comment] => SimpleXMLElement Object
(
)
[Table] => SimpleXMLElement Object
(
[Tablename] => incoming
[comment] => SimpleXMLElement Object
(
)
[Fields] => SimpleXMLElement Object
(
[Fieldsname] => Array
(
[0] => description
[1] => cidnum
[2] => extension
[3] => destination
)
[comment] => Array
(
[0] => SimpleXMLElement Object
(
)
[1] => SimpleXMLElement Object
(
)
)
)
)
)
ルート値に@attributes
配列があることに注意してください。なぜ$doc->Routes[0]->Table->Fields->Fieldsname
持っていないの@attributes
ですか?経由attributes()
で取得できることはわかっていますが、に含める方法はあり$doc
ますか?
EDIT
どうやら、配列/オブジェクトのすべてprint_r()
の値を表示したり、すべての子を調べたりするわけではありません。または、要求されない限り、値を返さない可能性があります(すべてがに格納されているようです)。すると、戻りますSimpleXMLElement
$doc
print_r($doc->Route[0]->Table->Fields->Fieldsname[0]);
SimpleXMLElement Object
(
[@attributes] => Array
(
[ref] => description
[name] => Route Name
)
[0] => description
)
これは私が探しているデータを示しています。しかし、私がそうするとprint_r($doc->Route[0]->Table->Field);
、データは表示されません。