我是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_empimg() {
$url = 'https://...emp_test.xml';
$xml = simplexml_load_file("$url") or die("Error: Cannot create object");
foreach($xml->children() as $emp_detail) {
//do something in here;
//return img has attribute is John
}
}
如何通过它来获取所有img属性是John?
感谢您阅读!
答案 0 :(得分:0)
$data2 = <<<'XML'
<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>
XML;
$doc2 = new SimpleXMLElement($data2);
return array_map('strval', $this->doc2->xpath("//*[@emp_name='john']/img"));
答案 1 :(得分:0)
使用Xpath,Xpath表达式允许条件:
10006d7b2276657273696f6e223a7b226e616d65223a22312e3132222c2270726f746f636f6c223a3333357d2c22706c6179657273223a7b226d6178223a3130302c226f6e6c696e65223a357d2c226465736372697074696f6e223a7b2274657874223a225374617264757374227d7d