我一定在这里错过了一些简单的东西,这让我发疯了。
我正在调用一个 Web 服务 API 并返回一些 xml:
<?xml version="1.0" encoding="utf-16"?>
<MTSMember xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<LastName>Smith</LastName>
<FirstName>john</FirstName>
<MemberNo>xxxxxxxx</MemberNo>
<Club>None</Club>
<JoinDate>2013-05-14</JoinDate>
<Email>email@email.com</Email>
</MTSMember>
然后我需要处理这个 xml 来获取电子邮件地址。 但我只是使用以下代码得到一个空结果:
$xml_result = simplexml_load_string($xml_string_above);
echo $xml_result->MTSMember[0]->Email;
有人可以指出我正确的方向吗?我已经阅读了其他几个答案,尝试了各种解决方案,但似乎无法使其工作。
编辑:这是我尝试的最后一个教程 http://blog.teamtreehouse.com/how-to-parse-xml-with-php5
这应该是:
echo $xml_result->Email;
因为simplexml_load_string()
正在加载MTSMember
作为主要SimpleXMLElement
.
代码板示例
试试这个
$xml=new SimpleXMLElement($str);
$result=$xml->xpath('//Email');
foreach ($result as $Email)
echo $Email . "<br>";
只是
$xml=new SimpleXMLElement($str);
echo $xml[0]->Email;
更新:
下面只是为了你的评论,整个我尝试过
$str='<?xml version="1.0" encoding="utf-8"?>
<MTSMember xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<LastName>Smith</LastName>
<FirstName>john</FirstName>
<MemberNo>xxxxxxxx</MemberNo>
<Club>None</Club>
<JoinDate>2013-05-14</JoinDate>
<Email>email@email.com</Email>
</MTSMember>';
$xml=new SimpleXMLElement($str);
echo $xml[0]->Email;
//OR
$xml=new SimpleXMLElement($str);
$result=$xml->xpath('//Email');
foreach ($result as $Email)
echo $Email . "<br>";
快乐:)
这应该可以正常工作
$xml = new SimpleXMLElement($xml_string_above);
$dc = $xml->email;
echo $dc;