मैंने पहले कभी DOM पार्सर का उपयोग नहीं किया है और अब मेरे पास एक सवाल है
मैं इस मार्कअप से यूआरएल निकालने के बारे में कैसे जाना होगा:
<files> <file path="http://www.thesite.com/download/eysjkss.zip" title="File Name" /> </files>
सरल एक्सएमएल का उपयोग करना:
$xml = new SimpleXMLElement($xmlstr); echo $xml->file['path']."\n";
आउटपुट:
http://www.thesite.com/download/eysjkss.zip
ऐसा करने के लिए आप DOM के साथ करते हैं
$dom = new DOMDocument; $dom->load( 'file.xml' ); foreach( $dom->getElementsByTagName( 'file' ) as $file ) { echo $file->getAttribute( 'path' ); }
आप इसे XPath के साथ भी कर सकते हैं:
$dom = new DOMDocument; $dom->load( 'file.xml' ); $xPath = new DOMXPath( $dom ); foreach( $xPath->evaluate( '/files/file/@path' ) as $path ) { echo $path->nodeValue; }
या सीधे एक स्ट्रिंग मान के रूप में:
$dom = new DOMDocument; $dom->load( 'file.xml' ); $xPath = new DOMXPath( $dom ); echo $xPath->evaluate( 'string(/files/file/@path)' );
आप मैन्युअल रूप से DOM को पार करके व्यक्तिगत नोड भी प्राप्त कर सकते हैं
$dom = new DOMDocument; $dom->preserveWhiteSpace = FALSE; $dom->load( 'file.xml' ); echo $dom->documentElement->firstChild->getAttribute( 'path' );
इस सीडब्ल्यू को चिह्नित करते हुए, क्योंकि इसका उत्तर कई बार (अलग-अलग तत्वों के साथ) के उत्तर में दिया गया है, मेरे सहित, लेकिन मैं डुप्लिकेट खोजने के लिए बहुत आलसी हूं।
आप PHP सरल HTML DOM Parser का उपयोग कर सकते हैं, यह एक php पुस्तकालय है। http://simplehtmldom.sourceforge.net/