Чтение атрибута дочернего элемента

1

Я пытаюсь прочитать значение location в следующем xml:

<service name="xyz">
     <documentation>gSOAP 2.7.11 generated service definition</documentation>
     <port name="xyz" binding="tns:xyz">
      <SOAP:address location="http://192.168.0.222:8092"/>
     </port>
</service>

Я пытаюсь достичь SOAP:address тег SOAP:address но не смог:

$wsdlFile = file_get_contents('./wyz.wsdl');

    if($wsdlFile) {
        $xml = simplexml_load_string($wsdlFile);
        foreach( $xml->service->documentation->port->attributes() as $a => $b) {
            echo $a . '-' . $b;
        }
    }

Как я могу получить значение location?

Теги:
simplexml

2 ответа

0
//Convert to Array like this
$wsdlFile = file_get_contents('./wyz.wsdl');
if($wsdlFile) {
    $wsdlData = json_decode(json_encode($wsdlFile),TRUE);
}
//Now you can access the address through the key=> value pair
$location = $wsdlData['location'];
0

Наличие : в собственности затрудняет получение этого свойства, но возможно:

По индексу:

$value = $xml->port->children()[0]->attributes()['location']->__toString();

Или по имени:

$prop = 'SOAP:address';
$value = $xml->port->$prop->attributes()['location']->__toString();

Распечатайте все атрибуты SOAP:address и его значения:

$wsdlFile = file_get_contents('./wyz.wsdl');

if($wsdlFile) {
    $xml = simplexml_load_string($wsdlFile);
    $prop = 'SOAP:address';
    foreach($xml->port->$prop->attributes() as $a => $b) {
        echo $a . '-' . $b;
    }
}
  • 0
    не работает ...
  • 0
    Странно, здесь все отлично работает. Какую ошибку это дает вам?
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню