【发布时间】:2017-08-02 09:43:58
【问题描述】:
我是php新手。
所以,我想从 url 解析 xml,例如:
<?xml version="1.0" encoding="utf-8"?>
<all_emp>
<emp_detail>
<emp emp_name="john"><img>john_1.jpg</img></emp>
<emp emp_name="john"><img>john_2.jpg</img></emp>
<emp emp_name="john"><img>john_3.jpg</img></emp>
<emp emp_name="marry"><img>marry_1.jpg</img></emp>
<emp emp_name="marry"><img>marry_2.jpg</img></emp>
<emp emp_name="david"><img>david_1.jpg</img></emp>
</emp_detail>
</all_emp>
我创建了代码来解析它:
function get_empname() {
$url ='http://.../emp_test.xml';
$xml=simplexml_load_file("$url") or die("Error: Cannot create object");
foreach($xml->children() as $emp_detail) {
$source = $xml->emp_detail->emp->attributes()->emp_name . "<br>";
return $source;
}
}
我可以解析xml。
但是,这是我得到的结果:
john
我对此有疑问:
如何获取所有emp_name属性?
如果emp_name相同,如何分组?
感谢您的阅读!
【问题讨论】:
-
不是 100% 肯定,但我认为您的 XML 存在语法错误。据我所知,它不允许在同一个元素内有多个同名的属性。 (您的
emp_detail中有多个john)。如果我错了,请有人纠正我。 -
@Twinfriends :可能是。但使用 c#,我可以解析它。所以,当我将其更改为 php 和 wordpress 时,我不能。我认为解析 xml 的代码是错误的。
-
2.去研究所谓的控制中断。 3. 你听说过
if...吗?那么真正的问题在哪里呢?不知道字符串比较是如何工作的? -
@CBroe:我会试试的。