我必须解析以下格式的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'
请指点我指向正确的方向吗?
答案 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);