SimpleXML用于复杂XML的加载文件功能?

时间:2013-08-27 11:22:24

标签: php xml parsing simplexml

我正在尝试使用此函数从响应中获取某些值。

xml响应是:

<details>

<ID>355499958</ID>
<parentID>94581</parentID>
<parentTable>acNumber</parentTable>
<title>Connected</title>
<StartTime>2013-08-20 12:30:54</StartTime>
<EndTime>2013-08-20 12:32:53</EndTime>
<connect>1.9902</connect>
<CLI>01234567890</CLI>
<dialledNumber>01234567890</dialledNumber>

<CData>
<DI N="opID" V="12345678" T="digitstring"/>
<DI N="account" V="1" T="digitstring"/>
<DI N="tID" V="1-2-3456789" T="digitstring"/>
<DI N="auth" V="test" T="digitstring"/>
<DI N="result" V="0" T="digitstring"/>
<DI N="accountID" V="" T="digitstring"/>
<DI N="tAmount" V="1000" T="digitstring"/>
<DI N="responseMessage" V="" T="digitstring"/>
</CData>

</details>

现在可以撤回其中一个第一个值等:     echo $ xml-&gt; CLI;

但我需要从CData字段中获取单个值。

我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:1)

您可以使用simplexml_load_stringsimplexml_load_file

$xml = simplexml_load_string($xmlresponse);

echo $xml->ID; // 355499958

foreach($xml->CData->DI as $value)
{
    $att = $value->attributes();
    echo $att['N']; // opID
    echo $att['V']; // 12345678
    echo $att['T']; // digitstring
}

获取特定索引

tAmount7.行。所以6.索引在数组中。数组索引从零开始。

$xml = simplexml_load_string($string);

$data = $xml->CData->DI[6]->attributes();

echo $data['N']; // tAmount
echo $data['V']; // 1000
echo $data['T']; // digitstring