XPath w SimpleXML dla domyślnych przestrzeni nazw bez konieczności prefiksów

Mam dokument XML, do którego dołączona jest domyślna przestrzeń nazw, np

<foo xmlns="http://www.example.com/ns/1.0">
...
</foo>

W rzeczywistości jest to złożony dokument XML, który jest zgodny ze złożonym schematem. Moim zadaniem jest przeanalizowanie z niego niektórych danych. Aby mi pomóc, mam arkusz kalkulacyjny XPath. XPath jest raczej głęboko zagnieżdżony, np

level1/level2/level3[@foo="bar"]/level4[@foo="bar"]/level5/level6[2]

Osoba, która generuje XPath, jest ekspertem w schemacie, więc zakładam, że nie mogę go uprościć ani użyć skrótów przechodzenia przez obiekt.

ja używamSimpleXML wszystko przeanalizować. Mój problem dotyczy sposobu obsługi domyślnej przestrzeni nazw.

Ponieważ na elemencie głównym znajduje się domyślna przestrzeń nazw, nie mogę tego zrobić

$xml = simplexml_load_file($somepath);
$node = $xml->xpath('level1/level2/level3[@foo="bar"]/level4[@foo="bar"]/level5/level6[2]');

muszęzarejestruj przestrzeń nazw, przypisz go do prefiksu, a następnie użyj prefiksu w moim XPath, np

$xml = simplexml_load_file($somepath);
$xml->registerXPathNamespace('myns', 'http://www.example.com/ns/1.0');
$node = $xml->xpath('myns:level1/myns:level2/myns:level3[@foo="bar"]/myns:level4[@foo="bar"]/myns:level5/myns:level6[2]');

Dodanie prefiksów nie da się na dłuższą metę poradzić.

Czy istnieje właściwy sposób obsługi domyślnych przestrzeni nazw bez konieczności używania prefiksów z XPath?

Korzystanie z pustego prefiksu nie działa ($xml->registerXPathNamespace('', 'http://www.example.com/ns/1.0');). Mogę wyodrębnić domyślną przestrzeń nazw, np

$xml = file_get_contents($somepath);
$xml = str_replace('xmlns="http://www.example.com/ns/1.0"', '', $xml);
$xml = simplexml_load_string($xml);

ale to omija problem.

questionAnswers(3)

yourAnswerToTheQuestion