simplexml_load_string не принимает одиночные теги XML - PullRequest
0 голосов
/ 21 января 2020

У меня проблема с функцией PHP simplexml_load_string(). Я использую внешний API, который в ответ возвращает строку XML, как показано ниже:

<?xml version="1.0" encoding="UTF-8"?>
<audience>
  <member>
    <first_name>Adam</first_name>
    <last_name/>
    <lists>
      <list>hihi</list>
    </lists>
  </member>
</audience>

И когда я использую simplexml_load_string($xmlString), я получаю false вместо объекта. Есть ли способ для функции simplexml_load_string() принимать отдельные теги? В этом случае я хотел бы получить last_name как пустой узел.

1 Ответ

0 голосов
/ 21 января 2020

Ниже код работает просто отлично. Показывает object(SimpleXMLElement)#4 (0) { } для последней строки. Смотрите это 3в4л .

<?php

libxml_use_internal_errors(TRUE);

$xml = <<<EOT
<?xml version="1.0" encoding="UTF-8"?>
<audience>
  <member>
    <first_name>Adam</first_name>
    <last_name/>
    <lists>
      <list>hihi</list>
    </lists>
  </member>
</audience>
EOT;

if (($o = simplexml_load_string($xml)) === FALSE)
{
        foreach (libxml_get_errors() as $error)
                echo "{$error->message}<br>\n";

        exit;
}
var_dump($o->member->last_name);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...