【发布时间】:2022-01-13 05:42:52
【问题描述】:
我正在尝试从下面的代码中获取 result 属性的值,即 1。
$file = file_get_contents('https://test.com/...');
$xml = simplexml_load_string($file)
var_dump($xml);
给出以下对象
object(SimpleXMLElement)#1 (1) {
[0]=> string(141) "
<response result="1">
<message>Yes here</message>
</response>"
}
我怎样才能得到属性result = '1'的值。
print_r($xml->response['result']; //gives NULL
【问题讨论】:
-
这听起来可能有点愚蠢,但是,为什么不将 [0] 字符串作为一个整体返回,然后 preg_match 双引号 ("") 并返回其中的值?我知道它不是理想的,但它有效。
-
你可以使用类似this
-
@berend;转换为数组是首选
$xml = (array)simplexml_load_string($file);,而不是json_decode(json_encode()) -
您需要提供原始 XML,从 var_dump() 看起来它是一个 XML 文档,另一个 XML 文档位于文本节点中。如果是这种情况,您将必须读取文本值并将其解析/加载为 XML。