Помогите пропарсить xml на РНР

alibabaevich

Новичок
Помогите пропарсить xml на РНР

Здравствуйте! Помогите пропарсить вот такое дело:

Код:
<?xml version="1.0" encoding="windows-1251"?>
<FictionBook xmlns="http://www.gribuser.ru/xml/fictionbook/2.0"
xmlns:l="http://www.w3.org/1999/xlink">
<description>
<title-info>
<genre>sf</genre>
<author> 
<first-name>Андрей</first-name>
<last-name>Аарх</last-name>
</author>
<src-lang>ru</src-lang>
<book-title>Аида</book-title>
<lang>ru</lang>
</title-info>
<document-info>
<author>
<nickname>rusec</nickname>
<email>lib_at_rus.ec</email>
</author>
<program-used>LibRusEc kit</program-used>
<date value="2013-06-10">2013-06-10</date>
<id>Mon Jun 10 21:40:30 2013</id>
<version>1.0</version>
</document-info>
</description>
<body>
<title><p>Аарх Андрей</p><p>Аида</p></title> 
<section>
Здесь текст книги
/section></body></FictionBook>
Мне нужно что-то типа такого:

first-name - Андрей
last-name - Аарх
book-title - Аида
section - Здесь текст книги

Пробовал так брать автора книги:

PHP:
$xml = simplexml_load_file($file);
$nodes = $xml->xpath('description/title-info/author/*');    
foreach ($nodes as $node) {
echo $node; // выводим автора книги
}
но когда родительский элемент:
<FictionBook xmlns="http://www.gribuser.ru/xml/fictionbook/2.0"
xmlns:l="http://www.w3.org/1999/xlink">

написан таким образом, то что-то не работает.
Когда переправляю просто на <FictionBook> то все ок. Где грабли?

Заранее спасибо за ответ!
 

Фанат

oncle terrible
Команда форума
постарайся подробнее осветить понятие "что-то не работает".
в противном случае получишь ответ "подправь что-нибудь"
 

alibabaevich

Новичок
PHP:
$xml = simplexml_load_file($file); 
$nodes = $xml->xpath('description/title-info/author/*');     
foreach ($nodes as $node) { 
echo $node; 
}
вот когда не работает, то результат выполнения вышеуказано когда - пустой экран.

PHP:
var_dump($node) - array(0) {
}
 

Фанат

oncle terrible
Команда форума
а зачем здесь xpath? если просто обратиться к элементам $xml?
 

alibabaevich

Новичок
А подскажите, как можно к ним обратиться?


$var = $xml->FictionBook->description;

ЧТо-то типа такого пробовал - не выходит :(
 

Фанат

oncle terrible
Команда форума
ну, надо не от балды писать, а делать var_dump(), смотреть имя и тип и писать его соответственно - переменной или массивом. как-то так.
 
Сверху