Php simplexml\u加载\u字符串返回空节点
可能重复:Php simplexml\u加载\u字符串返回空节点,php,xml,simplexml,Php,Xml,Simplexml,可能重复: 我正在使用simplexml\u load\u string()解析xml字符串。它正确读取输入,但不返回任何数据,只返回空白节点 我的xml数据是: <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <leads> <auth> <username>user</username> <password>user
我正在使用
simplexml\u load\u string()
解析xml字符串。它正确读取输入,但不返回任何数据,只返回空白节点
我的xml数据是:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<leads>
<auth>
<username>user</username>
<password>user</password>
</auth>
</leads>
当我试图打印结果时,我得到一个空白节点,如
<auth>
</username>
</password>
</auth>
您需要使用返回XML,否则它将返回根节点的值,该值为空,因此为空字符串
所以一切都很好
此外,作为预先警告,请执行正确的返回值检查:
$obj = simplexml_load_string($xml)
if ($obj === FALSE) {
throw new Exception('Failed to load XML string.');
}
我希望这会对你有所帮助,并对你的问题有所启发。我找到了解决办法
$username = (string) $xmlObj->auth->username;
我只是放了“(string)”如果你真的提供了代码,那么你的问题可能会变得更清楚,这样你就可以清楚地知道你是如何使用这个函数的。此外,您还没有提供任何信息,说明您的预期输出是什么,因此您的问题很容易被误读,因为您提供的输出将是原始文档。原始XML字符串在哪里?我这样问是因为在你更新了你的问题之后,它可能有问题。你能提供一些样品吗?或者你是在一字不差地使用这个样本?因为有了这些数据,它对我来说是有效的:-注意:必须以这种方式检查字符串加载成功,否则会遇到问题:
if(false=$xmlObj){
-这可能是您的问题?我正在将上面的xml示例xml作为Web服务响应,并且我正在尝试解析此响应。我可以说,对于您提供的数据,这是有效的。您可能希望共享更多代码,因为您必须提供的信息不清楚您的实际问题。这使得你的问题毫无用处,因为它不清楚你问什么。你可能想提供。
$username = (string) $xmlObj->auth->username;