2016-07-06 71 views
0

如何在選擇包含名稱空間屬性的節點時獲得其他屬性?SimpleXML:如何在選擇包含名稱空間屬性的節點時獲取其他屬性?

我有一個SVG xlink:href,我試圖訪問id屬性,但是當使用xpath時,它似乎只返回一個「屬性節點」。我如何獲得實際的「元素節點」?

$xml = new \SimpleXMLElement('<?xml version="1.0" encoding="UTF-8" ?> 
    <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> 
     <image id="my-image" xlink:href="http://example.com/image.png" /> 
    </svg> 
'); 
$xml->registerXPathNamespace('svg', 'http://www.w3.org/2000/svg'); 
$xml->registerXPathNamespace('xlink', 'http://www.w3.org/1999/xlink'); 
$images = $xml->xpath('//svg:image/@xlink:href'); 
foreach ($images as $image) { 
    var_dump($image); 
} 

輸出:

object(SimpleXMLElement)#2 (1) { 
    ["@attributes"]=> 
    array(1) { 
    ["href"]=> 
    string(28) "http://example.com/image.png" 
    } 
} 

https://3v4l.org/lvILL

回答

相關問題