php xml解析器simplexml\u加载\u字符串
simplexml_load_string()似乎不适用于以下xml格式php xml解析器simplexml\u加载\u字符串,php,xml,parsing,simplexml,Php,Xml,Parsing,Simplexml,simplexml_load_string()似乎不适用于以下xml格式 "<?xml version="1.0" encoding="UTF-8"?> <Chat_vailable queue="IBIN" locale="gn">Hide</Chat_vailable>" $result = simplexml_load_string($response->data) [@attributes] queue -> IBIN loc
"<?xml version="1.0" encoding="UTF-8"?>
<Chat_vailable queue="IBIN" locale="gn">Hide</Chat_vailable>"
$result = simplexml_load_string($response->data)
[@attributes]
queue -> IBIN
locale->gn
”
隐藏”
$result=simplexml\u load\u字符串($response->data)
[@attributes]
队列->IBIN
语言环境->gn
上面的xml是响应的一部分,因此当得到结果时,它只包含属性
$result是SimpleXMLElement的对象,并且只有一个属性数组
它没有任何与“Chat_valiable”或隐藏相关的内容
有人能帮忙吗在
$result
上执行var\u dump
会产生这个结果。因此,它确实获得了属性和内容
object(SimpleXMLElement)#1 (2) {
["@attributes"]=>
array(2) {
["queue"]=>
string(4) "IBIN"
["locale"]=>
string(2) "gn"
}
[0]=>
string(4) "Hide"
}
产生上述输出的代码如下
$xml = <<<EOF
<?xml version="1.0" encoding="UTF-8"?>
<Chat_vailable queue="IBIN" locale="gn">Hide</Chat_vailable>
EOF;
$result = simplexml_load_string($xml);
var_dump($result);
$xml=
将输出:
queue: IBIN, locaele: gn, value: Hide
看到它工作了吗:我不确定你用什么来检查那里的物体,我猜是打印出来的,但不管它是什么,都不要依赖它。:)
SimpleXML不会为XML文档中的所有内容创建具有属性的真实PHP对象,它提供了一个类似于API的对象,该对象链接到内部解析表示
因此,在你的情况下:
Chat\u available
是根节点,因此由$result
本身表示(SimpleXML没有单独的“文档”对象,因此根元素上方没有任何内容)
Hide
是该节点的文本内容,因此可以通过字符串转换来访问:(string)$result
(或者只是echo$result
,因为它会自动转换为字符串)
- 可以使用数组表示法访问属性
queue
和locale
(转换为字符串是一个好习惯,以避免传递可能会混淆后续函数的对象):(字符串)$result['queue']
,(字符串)$result['locale']
如果要检查通过SimpleXML对象提供的完整内容,请查看。聊天室可用。
queue: IBIN, locaele: gn, value: Hide