【问题标题】:How to access value of xml element in PHP?如何在 PHP 中访问 xml 元素的值?
【发布时间】:2019-10-18 18:26:59
【问题描述】:

我正在创建 XML 解析器,我需要获取元素的值,但我不能。

$dataURL = "<item internal-id='187'>Test</item>";
$xml = simplexml_load_string($dataURL, "SimpleXMLElement", LIBXML_NOCDATA);
$json = json_encode($xml);
print_r($json);
die();

返回我:

{"@attributes":{"internal-id":"187"},"0":"Test"}

但是

$dataURL = "<item internal-id='187'><room value='187'>Test2</room></item>";
$xml = simplexml_load_string($dataURL, "SimpleXMLElement", LIBXML_NOCDATA);
$json = json_encode($xml);
print_r($json);
die();

还给我

{"@attributes":{"internal-id":"187"},"room":"Test2"}

我希望看到所有 XML 元素的价值,但我仍然没有得到它们。

【问题讨论】:

  • 不确定您的期望,但根本不需要转换为 json(然后再返回)。在您的示例中,您可以使用 echo "value=".(string)$xml.", id=".$xml['internal-id']; 查看值,但不确定您期望或尝试做什么。

标签: php json xml


【解决方案1】:

我试过这段代码:

$xml = simplexml_load_string($xmlRe, "SimpleXMLElement", LIBXML_NOCDATA);
                $json = json_encode($xml);
             //   $response = json_decode($json, TRUE);( for getting the results in an array format.)

请试试这个。

谢谢

【讨论】:

  • 它返回``` Array ( [@attributes] => Array ( [internal-id] => 187 ) [room] => Test2 ) ``` 我需要得到房间的值
  • 是的,为了获取 JSON 响应,您不应该使用 json_decode 函数。这样,你就会得到渴望的回应。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-11-20
  • 2019-06-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多