2012-06-28 46 views
0

以下是xml源的URL:xpath将不会检索元素

我尝试使用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++; 
}  

?> 

回答

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>'; 
} 

我希望这有助于设置的命名空间。

+0

感谢您的意见。它正在工作,这一定会帮助我前进! – thindery

+0

我在你建议的内容上增加了一个新问题。我得到意外的数组结果,但: – thindery

+0

http://stackoverflow.com/questions/11251603/getting-unexpected-xpath-results – thindery

0

奇怪。然而,这是有效的。

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