提问人:Andrew G. Johnson 提问时间:1/20/2009 更新时间:1/20/2009 访问量:1415
将XML结果设置为明文,希望在PHP中循环访问它们
Have XML results in plaintext, want to loop through them in PHP
问:
因此,我正在使用一个以 XML 格式返回结果的 API。为了论证,我们只说我得到了以下回报:
<?xml version="1.0" encoding="UTF-8"?>
<Properties>
<Property>
<Name>Joes Crab Shack</Name>
<Address>111 Shack Street</Address>
</Property>
<Property>
<Name>Johns Shoe Store</Name>
<Address>123 Shoe Avenue</Address>
</Property>
</Properties>
现在我正在使用 PHP,并将结果转换为变量。所以基本上会发生这种情况:
$xml_results = '<?xml version="1.0" encoding="UTF-8"?><Properties><Property><Name>Joes Crab Shack</Name><Address>111 Shack Street</Address></Property><Property><Name>Johns Shoe Store</Name><Address>123 Shoe Avenue</Address></Property></Properties>';
现在,我如何将其视为XML文档,例如遍历它并打印出所有属性名称?
答:
2赞
driAn
1/20/2009
#1
反序列化为 xml 树,尝试 SimpleXML。这样,您就可以以更方便的方式访问该数据并获取特定的 xml 元素。
评论
1赞
Andrew G. Johnson
1/20/2009
很好的答案,但有示例的答案要好一些。
4赞
Doug G.
1/20/2009
#2
像这样的事情应该可以完成工作。
$request_xml = '<?xml version="1.0" encoding="UTF-8"?>
<Properties>
<Property>
<Name>Joes Crab Shack</Name>
<Address>111 Shack Street</Address>
</Property>
<Property>
<Name>Johns Shoe Store</Name>
<Address>123 Shoe Avenue</Address>
</Property>
</Properties>';
$xml = simplexml_load_string($request_xml);
$i = 0;
while ($xml->Property[$i])
{
echo $xml->Property[$i]->Name;
echo $xml->Property[$i]->Address;
$i++;
}
评论