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