Разбор XML с использованием PHP с несколькими пространствами имен

У меня есть XML-файл, который мне трудно разобрать правильно:
Мне нужно получить значение из файла XML

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<ns1:PerfmonCollectCounterDataResponse soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="http://schemas.cisco.com/ast/soap/">
<ArrayOfCounterInfo soapenc:arrayType="ns1:CounterInfoType[2]" xsi:type="soapenc:Array" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
<item xsi:type="ns1:CounterInfoType">
<Name xsi:type="ns1:CounterNameType">\\172.16.106.18\Number of Replicates Created and State of Replication(ReplicateCount)\Number of Replicates Created</Name>
<Value xsi:type="xsd:long">603</Value>
<CStatus xsi:type="xsd:unsignedInt">1</CStatus>
</item>
<item xsi:type="ns1:CounterInfoType">
<Name xsi:type="ns1:CounterNameType">\\172.16.106.18\Number of Replicates Created and State of Replication(ReplicateCount)\Replicate_State</Name>
<Value xsi:type="xsd:long">2</Value>
<CStatus xsi:type="xsd:unsignedInt">1</CStatus>
</item>
</ArrayOfCounterInfo>
</ns1:PerfmonCollectCounterDataResponse>
</soapenv:Body>
</soapenv:Envelope>

Ниже приведен код, который я запускаю:

// fclose($fopen);
// if (file_exists($filename)) {
// $output = simplexml_load_file($filename,null,null,"http://www.w3.org/2001/XMLSchema-instance",true);  // I have also tried without the namespaces
;
//$output = simplexml_load_string($xmldata);

//var_dump($output);
//print_r($output);
} else {
echo "File not found";
}

Ниже находится пустой объект, который я получаю:

object (SimpleXMLElement)[3]
SimpleXMLElement Object ( )

Пожалуйста, помогите.

0

Решение

Это на самом деле не пустой объект и имеет методы против него. Это ожидается. Если вы сделали

echo $output->asXML();

Вы увидите возвращенную строку XML.

Теперь выполните методы для этого, чтобы выполнить итерацию набора данных и получить ваши конкретные значения.

Кроме того, если вы имеете дело с отладкой simplexml часто, рассмотреть эту функцию

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector