Php SimpleXML低级变量

Php SimpleXML低级变量,php,xml,simplexml,Php,Xml,Simplexml,我正在用simple_xml_load_file()逐级解析一个文件。以下是示例结构: <person name="Joe Smith" ...> <info age="19"> <height val="1.85" /> </info> <info age="19"> <weight val="82" /> </info> <info age="19"&g

我正在用simple_xml_load_file()逐级解析一个文件。以下是示例结构:

<person name="Joe Smith" ...>
   <info age="19">
     <height val="1.85" />
   </info>
   <info age="19">
     <weight val="82" />
   </info>
   <info age="19">
     <build val="14" />
   </info>
</person>
...

这应该可以做到:

foreach($dom->person as $person){
   $name=$person['name'];
   foreach($person->info as $info) {
       echo $info['age'] . '<br>';
   }
}
foreach($dom->person as$person){
$name=$person['name'];
foreach($person->info as$info){
echo$info['age']。
; } }
或者,如果你想在某个特定职位上获得一个年龄:

echo $person->info[0]['age']; // Gets age attribute of first <info> node
echo$person->info[0]['age'];//获取第一个节点的年龄属性

这应该可以完成以下工作:

foreach($dom->person as $person){
   $name=$person['name'];
   foreach($person->info as $info) {
       echo $info['age'] . '<br>';
   }
}
foreach($dom->person as$person){
$name=$person['name'];
foreach($person->info as$info){
echo$info['age']。
; } }
或者,如果你想在某个特定职位上获得一个年龄:

echo $person->info[0]['age']; // Gets age attribute of first <info> node
echo$person->info[0]['age'];//获取第一个节点的年龄属性

这应该可以完成以下工作:

foreach($dom->person as $person){
   $name=$person['name'];
   foreach($person->info as $info) {
       echo $info['age'] . '<br>';
   }
}
foreach($dom->person as$person){
$name=$person['name'];
foreach($person->info as$info){
echo$info['age']。
; } }
或者,如果你想在某个特定职位上获得一个年龄:

echo $person->info[0]['age']; // Gets age attribute of first <info> node
echo$person->info[0]['age'];//获取第一个节点的年龄属性

这应该可以完成以下工作:

foreach($dom->person as $person){
   $name=$person['name'];
   foreach($person->info as $info) {
       echo $info['age'] . '<br>';
   }
}
foreach($dom->person as$person){
$name=$person['name'];
foreach($person->info as$info){
echo$info['age']。
; } }
或者,如果你想在某个特定职位上获得一个年龄:

echo $person->info[0]['age']; // Gets age attribute of first <info> node
echo$person->info[0]['age'];//获取第一个节点的年龄属性

没有其他循环的其他方法吗?有大量的信息标签,我担心如果文件太大,会降低性能。有没有其他方法可以不用另一个循环?有大量的信息标签,我担心如果文件太大,会降低性能。有没有其他方法可以不用另一个循环?有大量的信息标签,我担心如果文件太大,会降低性能。有没有其他方法可以不用另一个循环?有大量的信息标签,我担心如果文件太大,会降低性能。