我之前从未真正使用过DOM解析器,现在我有了一个问题。
如何从此标记中提取URL:
<files>
<file path="http://www.thesite.com/download/eysjkss.zip" title="File Name" />
</files>
答案 0 :(得分:13)
使用simpleXML:
$xml = new SimpleXMLElement($xmlstr);
echo $xml->file['path']."\n";
输出:
http://www.thesite.com/download/eysjkss.zip
答案 1 :(得分:11)
使用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,因为这已经多次回答(只是包含了不同的元素),包括我,但是我懒得找到副本。
答案 2 :(得分:-1)
你可以使用PHP Simple HTML DOM Parser,这是一个php库.http://simplehtmldom.sourceforge.net/