मैं PHP में नया हूँ।

तो, मैं यूआरएल से एक्सएमएल पार्स करना चाहता हूं जैसे:

<?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 प्राप्त करने के लिए इसे कैसे पास करें?

पढ़ने के लिए धन्यवाद!

0
1234abcd 2 अगस्त 2017, 19:23

2 जवाब

सबसे बढ़िया उत्तर
        $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"));
0
akond 3 अगस्त 2017, 08:06

एक्सपैथ का प्रयोग करें, एक्सपैथ एक्सप्रेशन शर्तों के लिए अनुमति देते हैं:

$document = new DOMDocument();
$document->loadXml($xml);
$xpath = new DOMXpath($document);

foreach ($xpath->evaluate('//emp[@emp_name="john"]/img') as $img) {
  var_dump($img->textContent);
}
0
ThW 2 अगस्त 2017, 19:30