Не работает getElementsByTagName

zIP

Новичок
Не работает getElementsByTagName

Нужно обработать документ в xml формате.

PHP:
		<?xml version="1.0" encoding="windows-1251"?>		
			<title-info>
				<genre>thriller_mystery</genre>
				<author>
					<first-name>Борис</first-name>
					<last-name>Акунин</last-name>
				</author>
				<book-title>Азазель</book-title>
				<annotation><p>Памяти XIX столетия, когда литература была великой.</p>
				<empty-line/>
				</annotation>
				<date/>
				<coverpage> <image l:href="#azazel.jpg"/></coverpage>
				<lang>ru</lang>
				<sequence number="1" name="Приключения Эраста Фандорина"/>
			</title-info>
Почитал мануал по DOM PHP5. Слишком скупое описание для не профессионала
Как я понял, начиная с версии 5 DOM встроен в ядро. Т.е. дополнительные расширения подключать не надо.
Но может еще что надо?

Просто я попробовал пример из мануала.


PHP:
$doc = new DOMDocument('1.0', 'windows-1251');
$doc->validateOnParse = true;
$doc->Load('lib/test.xml');
echo "The element whose id is books is: " . $doc->getElementById('annotation')->tagName . "\n";
Пробовал getElementsByTagName()
Без разницы.
Пусто и все. Не выводит значение.

-~{}~ 08.09.06 19:32:

Да, и еще. Проверил создаеться ли объект.

Проверил тупо - просто сохранил его.

PHP:
$doc->save('lib/file.xml');
все работает.
 

Wicked

Новичок
1)
According to the DOM standard this requires a DTD which defines the attribute ID to be of type ID. You need to validate your document with DOMDocument->validate() or DOMDocument->validateOnParse before using this function.
&copy; http://www.php.net/manual/en/function.dom-domdocument-getelementbyid.php

2) ты случаем не $doc->getElementByTagName('annotation')->tagName пытался вывести?
DOMNodeList getElementsByTagName ( string name )
&copy; http://www.php.net/manual/en/function.dom-domdocument-getelementsbytagname.php

-~{}~ 08.09.06 22:40:

3) PHP FAQ: Ничего не работает! Что делать??? :)
 

zIP

Новичок
Да все работает. Точнее ошибок не кажет. Это-то я завсегда проверяю.

Сделаю еще заход на мануал.

-~{}~ 08.09.06 21:28:

Автор оригинала: denver
1.getElementById
http://phpclub.ru/talk/showthread.php?s=&threadid=87785&highlight=getElementById

2. getElementsByTagName -- возвращает DOMNodeList у которого нет свойства tagName
Все равно не понял. В первом случае.

Во втором понял.

-~{}~ 08.09.06 21:50:

PHP:
$doc = new DOMDocument('1.0', 'windows-1251');

$doc->validateOnParse = true;
$doc->Load('lib/test.xml');
$items = $doc->getElementsByTagName('annotation');
foreach ($items as $item) {
	$annotation = $item->nodeValue . "\n";
	$annotation = iconv('utf-8','windows-1251',$annotation);
	echo $annotation;
}
 
Сверху