我收到此错误:
Notice: Trying to get property of non-object in
适用于: echo $ result->数据;
这个输出:
Array ()
背景信息
函数返回一个包含XML文件的字符串。
我想从两个标签中获取一些数据并自行处理。
字符串数据
$data="
<SyncML xmlns='SYNCML:SYNCML1.0'>
<SyncHdr>
</SyncHdr>
<SyncBody>
<betameta>
WANT 1
</betameta>
<Add>
<Data>
WANT 2
</Data>
</Add>
</SyncBody>
</SyncML>";
在上面的数据中,我想要值“WANT 1”和“WANT 2”
到目前为止代码
$xml = simplexml_load_string($data);
$result = $xml->xpath("/SyncML/SyncBody");
print_r($result);
echo $result->Data;
答案 0 :(得分:2)
$xml->registerXPathNamespace('default','SYNCML:SYNCML1.0');
$result = $xml->xpath("/default:SyncML/default:SyncBody");
答案 1 :(得分:0)
删除尾部斜杠。
答案 2 :(得分:-1)
我能找到的唯一解决方案如下:
<?php
$data= <<<XML
<?xml version="1.0" encoding="UTF-8"?>
<SyncML>
<SyncHdr>
</SyncHdr>
<SyncBody>
<betameta>
WANT 1
</betameta>
<Add>
<Data>
WANT 2
</Data>
</Add>
</SyncBody>
</SyncML>
XML;
$xml = simplexml_load_string($data);
$result = $xml->xpath("/SyncML/SyncBody");
print_r($result);
echo $result;
无论如何你可以松开xmlns吗?
这将输出:
Array
(
[0] => SimpleXMLElement Object
(
[betameta] =>
WANT 1
[Add] => SimpleXMLElement Object
(
[Data] =>
WANT 2
)
)
)