0

我遇到了一个小问题。我正在使用 Zoho CRM API,它以如下格式返回给我一个 XML:

<response uri="/crm/private/xml/Contacts/getRecords">
    <result>
        <Contacts>
            <row no="1">
                <FL val="Contact Owner">
                    <![CDATA[ Kristo Vaher ]]>
                </FL>
                <FL val="Lead Source">
                    <![CDATA[ Partner ]]>
                </FL>
            </row>
        </Contacts>
    </result>
</response>

当我通过 simplexml_load_string() 创建一个 XML 对象时,它将为我提供新对象中的大部分 XML,但它不会为我提供 FL 标记(CDATA 元素)的“内部”字符串,即实际感兴趣的数据我。

我的新 SimpleXML 对象只有以下数据:

[1] => SimpleXMLElement Object
    (
        [@attributes] => Array
            (
                [val] => Contact Owner
            )

    )

我最好的猜测是,这是因为 XML 不应该真正以这种方式构建,我在某处读到,如果 XML 标记具有属性,则不能在 XML 标记中包含内部内容,反之亦然(这是正确的吗?)。

我的替代方案是什么?自己编写解析器并不是一个真正的选择。

谢谢!

4

1 回答 1

1

获取属性:

foreach ($value->attributes() as $key => $val){
    // get all attributes
}

获取数据:

echo (string) $load->result->Contacts->row->FL[0];
于 2012-08-23T08:20:33.677 回答