Требуется ли registerNamespace в PHP DOMXPath?

Я работаю с таким XML:(это стандартный container.xml в книге epub)



   
      
   

Я пытаюсь разобрать его с помощью PHP. Это мой код на данный момент:

$c = new DOMDocument();
$c->load($filename);
$x = new DOMXPath($c);
//fine up to here!

//is this even what I'm supposed to be doing?
$x->registerNamespace('epub', 'urn:oasis:names:tc:opendocument:xmlns:container');
$root = $x->query('/epub:container/epub:rootfiles/epub:rootfile');

//fine down from here!
$opf = $root->item(0)->getAttribute('full-path'); //I know I should check if the element's there and if it has the attribute. Not important.

Мой вопрос:Есть ли способ не делать этот вызов registerNamespace? Я не уверен, что разные epub устанавливают это значение немного по-разному, и мне нужно, чтобы этот код работал с любым epub, который я ему добавляю.

5
задан cambraca 7 August 2012 в 00:14
поделиться