<t:include source="p.xml"/>
i zastępuje je nodem z p.xml
kod:
<? //załaduj content.xml $doc=new DOMDocument(); $doc->load("content.xml"); $xp=new DOMXPath($doc); $xp->registerNamespace("t", "pl.adamborowski.spider.server"); $query="//t:include"; /* @var $entries DomNodeList */ $entries=$xp->evaluate($query, $doc); for($i=0;$i<$entries->length;$i++) { $node=$entries->item($i); $source=$node->getAttribute("source"); $xml=new DOMDocument(); $xml->load($source); $docNode=$doc->importNode($xml); $node->parentNode->replaceChild($docNode, $node); } ?>
wsystko ok, ale w momencie $xml->load są błędy słuszne zresztą, że wczytany plik nie ma opisanych prefiksów przestrzeni nazw tam użytych.
Nie ma i nie będzie miał, bo to jest wycinek dużego xml, i CHCĘ przepiać definicje przestrzeni nazw do tego pliku poprzez złączenie obu plików.
Jak to klasycznie rozwiązać? Wiem, że można bawić się w replacement samego stringa, ale.. czy istnieją jakieś normalne metody?