Как извлечь атрибут узла из XML с помощью PHP DOM Parser

Я никогда раньше не использовал парсер DOM, и теперь у меня есть вопрос.

Как я могу извлечь URL из этой разметки:

<files> <file path="http://www.thesite.com/download/eysjkss.zip" title="File Name" /> </files> 

Использование simpleXML:

 $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' ); 

Маркировка этого CW, потому что на это ответили несколько раз (только с разными элементами), включая меня, но я слишком ленив, чтобы найти дубликат.

вы можете использовать PHP Simple HTML DOM Parser, это php library.http: //simplehtmldom.sourceforge.net/