2012-06-28 6 views
0

Здесь представлен URL источника XML:XPath не будет извлекать элементы

Я tryng, чтобы захватить все Richtext элементы, используя XPATH относительное расположение, а затем распечатать атрибут 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']"); 
Смежные вопросы