php parse xml unknown nr。标签

时间:2017-07-03 15:38:38

标签: php xml

我必须解析以下格式的xml文件

<row>
  <field name="ID">123</field>
  <field name="Number">987</field>
  <field name="Title">Awesome name of thing</field>
  ....
</row>  

标签的数量是unknwon,结果应该是一个关联数组,如下所示:

'ID' => 123
'Number' => 987
'Title' => 'Awesome Name of thing'

请指点我指向正确的方向吗?

2 个答案:

答案 0 :(得分:1)

如果数据简单,那么SimplXML可以很容易地完成。

$xmlText = <<< XML
<row>
<field name="ID">123</field>
<field name="Number">987</field>
<field name="Title">Awesome name of thing</field>
</row>
XML;

$doc = simplexml_load_string($xmlText);

$data = [];
foreach ( $doc->field as $fields)   {
    $data[(string)$fields['name']] = (string)$fields;
}

print_r($data);

需要注意的主要事项是,当使用像$fields['name']之类的东西时,这是元素的属性(即ID),但这需要强制转换为字符串以将其作为字符串而不是一个对象。与最后的$ fields相同,这是一个SimpleXMLElement对象,强制转换将其转换为一个简单的字符串。

答案 1 :(得分:0)

   $simple = '<row>
  <field name="ID">123</field>  
  <field name="Number">987</field>
  <field name="Title">Awesome name of thing</field>
</row>  ';


$xml = new SimpleXMLElement($simple);
  $xml_data = (array) $xml ;
              $data['id'] =   $xml_data['field'][0];
              $data['Number'] =   $xml_data['field'][1];
              $data['Title'] =   $xml_data['field'][2];

echo '<pre>';
print_r($data);