SimpleXML не анализирует мои сообщения epp XML

Я пытаюсь извлечь информацию из ответных сообщений xml epp из SIDN

Но я не abbel, чтобы получить некоторые переменные из этих сообщений. Мне удается получить код результата и сообщения.

$ domaininfo = xml сообщения, которые можно увидеть по адресу: http://pastebin.com/HbXMkdD3

    $xml = new SimpleXMLElement($domeininfo);
// check result code
    if (isset($xml->response->result))
        { foreach($xml->response->result->attributes() as $name => $value) {
            if ($name === 'code')
            { $code = $value; }
          }
        }

if ($code == '1000')
{
    $domeinnaamuitxml = $xml->response->{'resData'}->{'domain:infData'}->{'domain:name'};
    $techcuitxml = $xml->response->{'resData'}->{'domain:infData'}->{'domain:contact type="tech"'};
    $admincuitxml = $xml->response->{'resData'}->{'domain:infData'}->{'domain:contact type="admin"'};
    echo "Domein naam             :    $domeinnaamuitxml \n";
    echo "Admin C                 :    $admincuitxml \n";
    echo "Tech C                  :    $techcuitxml \n";
}

Что я делаю не так?

Это шов, как только есть: - = или "в теге есть проблема

всякая помощь обязательно велком

1 ответ

Решение

Использование xpathвыбрать элементы пространства имен с simplexml:

$domeinnaamuitxml = (string)$xml->xpath("//domain:name"}[0];

Комментарий: приведенный выше код требует PHP >= 5.4 из-за [0] (разыменование массива). В более старой версии PHP выполните:

 $domeinnaamuitxml = $xml->xpath("//domain:name"};
 $domeinnaamuitxml = (string)$domeinnaamuitxml[0];

посмотреть, как это работает: https://eval.in/101915

Другие вопросы по тегам