使用CDATA将XML解析为具有标签属性的数组

时间:2019-06-14 13:25:44

标签: php xml parsing

我有这个XML。

<?xml version="1.0" encoding="iso-8859-1" ?>
<root errorcode="0">
    <row index="0">
        <field name="id"><![CDATA[60AB0921-23F0-464F-B808]]></field>
        <field name="name"><![CDATA[(142) Test 3]]></field>
        <field name="startdate"><![CDATA[5-12-2008]]></field>
        <field name="enddate"><![CDATA[8-3-2009]]></field>
        <field name="country"><![CDATA[United kingdom]]></field>
    </row>
    ...
</root>

我尝试以不同的方式进行解析,例如:

$array = [];

foreach ($xml as $row) {
    foreach ($row as $membershipItem)
    {
        $array[$row['index']][] = simplexml_load_string($membershipItem,null,LIBXML_NOCDATA);
    }
}

return $array;

但这会给我simplexml_load_string(): Entity: line 2: parser error : Start tag expected, '&lt;' not found

我正在尝试获得一个可以更容易使用的数组/对象。

我找到了这个question

但是(在我这个问题上(也许不是真正的区别,因为这不是我的专长)),该标签称为content,它可以执行$ var-> content。但是我的XMl拥有所有具有相同名称field的标签。

0 个答案:

没有答案