我使用simplexml_load_file将以下xml内容转换为变量
<suggestions>
<items>
<item stop_id="00018210" stop_id_with_hash_key="00018210!-1579576589" shortcut=".lvc" stop_type="Stop" rt90_x="6401305" rt90_y="1285996">
<friendly_name><![CDATA[Landvetter centrum, HÄRRYDA (Hållplats)]]></friendly_name>
<stop_name><![CDATA[Landvetter centrum]]></stop_name>
<county><![CDATA[HÄRRYDA]]></county>
</item>
</items>
</suggestions>
我尝试使用php
执行以下操作来提取内容foreach ($xml->suggestions as $suggestion) {
foreach ($suggestion->items as $item) {
foreach ($item->friendly_name as $name) {
echo $name;
}
}
}
但我一无所获。我也尝试通过标准解析器,但最终得到一个空的结果。 上面的xml数据中有什么要求我以不同的方式处理这个吗?
答案 0 :(得分:0)
您的文件缺少xml标题,请将其添加到开头:
<?xml version="1.0" encoding="utf-8"?>
答案 1 :(得分:0)
你迭代太多了。你基本上可以访问你的元素:
print $xml->items[0]->item->friendly_name;
您不需要遍历根元素。只有一个,它将包含在主$xml
(无节点名称)中。在您的案例中,您需要循环的唯一元素是<items>
。然后,您可以使用 - &gt; friendly_name作为直接属性访问<item>
:
foreach ($xml->items as $items) {
print $items->item->friendly_name;
}
答案 2 :(得分:0)
试试这个
foreach ($xml->items as $item) { foreach($item as $item2) { echo $item2->friendly_name; } }
建议是标记开始/结束(根元素)。
答案 3 :(得分:0)
感谢您的建议。
Maerlyn:文件中有这样的说法,我只是把它留下来,只包括结构。
Maria&amp; Daniq,我不知道我是否理解你,但这就是我所做的,你的方法都没有产生任何结果:
$xml = simplexml_load_file("http://www.vasttrafik.se/External_Services/TravelPlanner.asmx/GetStopsSuggestions?identifier=0&searchString=landvetter&count=10");
foreach ($xml->items as $item) {
foreach($item as $item2) {
echo $item2->friendly_name;
}
}
所以这没有给我任何东西,这也不是:
$xml = simplexml_load_file("http://www.vasttrafik.se/External_Services/TravelPlanner.asmx/GetStopsSuggestions?identifier=0&searchString=landvetter&count=10");
foreach ($xml->items as $items) {
echo $items->item->friendly_name;
}
如果您有任何人有时间,请随意自行加载此xml文档,看看是否可以从中获取任何内容...非常感谢。我是一个xml新手,生命太短了......
/的Mattias