xpath不会检索元素

时间:2012-06-28 15:22:08

标签: php xml xpath

以下是xml源的URL:

我尝试使用xpath相对位置获取所有RichText元素,然后打印elementID属性。它虽然没有输出。有什么想法吗?

<?php  

$url = "FXG";    
$xml = simplexml_load_file($url);     
//print_r($xml);    
$textNode = $xml->xpath("//RichText");    
$count = count($textNode);    
$i = 0;    
while($i < $count)
{    
   echo '<h1>'.$textNode[$i]['s7:elementID'].'</h1>';
   $i++;
}    

?>

2 个答案:

答案 0 :(得分:1)

您需要注册在xml

中设置的命名空间
$url = "http://testvipd7.scene7.com/is/agm/papermusepress/HOL_12_F_green?&fmt=fxgraw";    
$xml = simplexml_load_file($url);       
$xml->registerXPathNamespace('default', 'http://ns.adobe.com/fxg/2008');
$xml->registerXPathNamespace('s7', 'http://ns.adobe.com/S7FXG/2008');
$textNode = $xml->xpath("//default:RichText/@s7:elementID");
foreach($textNode as $node) {
    echo '<h1>'.$node[elementID].'</h1>';
}

我希望这会有所帮助。

答案 1 :(得分:0)

奇怪。然而,这有效。

$textNode = $xml->xpath("//*[name() = 'RichText']");