Получение данного из XML по id

dellax

Guest
Получение данного из XML по id

Получение данного из XML по id
У меня возникла проблемка:

У меня есть скрипт:

$xmldocument = domxml_open_file("$basepath/content.xml");
$lcnode = $xmldocument->get_element_by_id($ids);
echo iconv("utf-8", "windows-1251", $lcnode->get_attribute('text'));

Ошибок он не выдаёт, $xmldocument открыт правильно, $ids правильный, но не срабатывает(данное не отображается).
У меня есть подозрение на функцию get_element_by_id, может быть я неправильно её использую, подскажите пожалуйста....
Заранее благодарен.
 

olpa

Новичок
get_element_by_id ищет только среди атрибутов типа "ID". Это означает как минимум, что:
* у документа должен быть DTD,
* в котором нужные атрибуты объявлены как ID,
* а XML парсится с загрузкой DTD.
Если вышеперечисленное -- китайская грамота, то используйте XPath вида "//element[@id='some_value']".
 

Gorath

Новичок
А для чего вообще сделаны ID-атрибуты? В каких случаях имеет смысл их использовать?
 

dellax

Guest
To Gorath: Ну XML же это по сути технология обработки и структурирования данных, то есть технология БД. Обычно в таких структурах используется идентификатор ID, для доступа к определённому данному, и желательно id в xml использовать. Т.е. в случае если тебе нужно занести базу данных в XML, без id обойтись довольно таки сложно.
To Olpa: спасибо за совет, я воспользовался XPath'ом и всё теперь работает.
 

Gorath

Новичок
Я об этом.
get_element_by_id ищет только среди атрибутов типа "ID". Это означает как минимум, что:
* у документа должен быть DTD,
* в котором нужные атрибуты объявлены как ID,
* а XML парсится с загрузкой DTD.
В чем преимущества перед
XPath вида "//element[@id='some_value']".
?
 
Сверху