Как извлечь различные значения из сложного XML-файла в PHP? - PullRequest
0 голосов
/ 09 февраля 2012

Мне срочно нужно знать, как читать следующий XML-файл:

<uclassify xmlns="http://api.uclassify.com/1/ResponseSchema" version="1.00">
<status success="true" statusCode="2000"/>
  <readCalls>
    <classify id="cls1">
      <classification>
        <class className="negative" p="0.741735"/>
        <class className="positive" p="0.258265"/>
      </classification>
    </classify>
  </readCalls>
</uclassify>

Мне нужно знать следующее:

$status_code = ... (should be 2000)
$negative = ...  (the value of p, should be 0.741735)
$positive = ...  (the value of p, should be 0.258265)

С уважением

Андре

1 Ответ

1 голос
/ 09 февраля 2012
$xml= simplexml_load_file('temp.xml');

foreach($xml->status->attributes() as $name => $value ){
    echo $name.' '.$value.'<br>';
    }
foreach($xml->readCalls->classify->classification->children() as $node ){
    foreach($node->attributes() as $name => $value)
     echo $name.' '.$value.'<br>';
    }

о / р:

успех есть statusCode 2000 className отрицательный p 0,741735 className положительный р 0,258265

Если вы хотите сохранить их:

$status_code = (string)$xml->status->attributes()->statusCode;
foreach($xml->readCalls->classify->classification->class as $node ){
    ${(string) $node->attributes()->className} = (string) $node->attributes()->p;
    }
echo $status_code.' '.$positive.' '.$negative;  

о / р:

2000 0,258265 0,741735

...