将xml对象(带属性)中的xml解析为cakephp中的数组

时间:2013-06-20 12:52:30

标签: cakephp

我有这样的回复:

<test xmlns="http://schemas.datacontract.org/2004/07/test.Messages.test" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
    <ProcessInstanceId xmlns="http://schemas.test.org/2004/07/test.Messages.Core">047d11f9-e381-4134-8bfa-da94cefda316</ProcessInstanceId>
    <ResultData i:type="a:InfoByZipCode" xmlns="http://schemas.test.org/2004/07/test.Messages.Core" xmlns:a="http://schemas.test.org/2004/07/test.DomainModel.Transient">
        <a:City>Bangalore</a:City>
        <a:County>India</a:County>
        <a:Products xmlns:b="http://schemas.test.org/2004/07/test.DomainModel.Views"/>
        <a:State>Connecticut</a:State>
        <a:StateCode>SBC</a:StateCode>
        <a:ZipCode>56001</a:ZipCode>
    </ResultData>
    <Success>TRUE</Success>
    <ResponseTime>2013-06-20T07:30:09.7558017-04:00</ResponseTime>
</test>

如何将其转换为数组格式?

1 个答案:

答案 0 :(得分:4)

据我所知,您可以在Cakebook中找到您想知道的所有内容:http://book.cakephp.org/2.0/en/core-utility-libraries/xml.html

因此,您可以将XML解析为数组,如下所示:

$xmlString = '<?xml version="1.0"?><root><child>value</child></root>'; // XML string
$xmlArray = Xml::toArray(Xml::build($xmlString));

在结果中,您的$xmlArray将具有以下内容:

Array
(
    [root] => Array
       (
           [child] => value
       )
 )