У меня есть следующий XML-документ:
<?xml version="1.0" encoding="UTF-8"?>
<ns0:WasteTask xmlns:ns0="http://lcc/dm/waste/v1.0">
<ns0:Identifiers>
<ns0:Identifier>
<ns1:Name xmlns:ns1="http://lcc/dm/common/v1.0">id</ns1:Name>
<ns1:Value xmlns:ns1="http://lcc/dm/common/v1.0">242498</ns1:Value>
</ns0:Identifier>
<ns0:Identifier>
<ns1:Name xmlns:ns1="http://lcc/dm/common/v1.0">ServiceCode</ns1:Name>
<ns1:Value xmlns:ns1="http://lcc/dm/common/v1.0">SR00239776</ns1:Value>
</ns0:Identifier>
<ns0:Identifier>
<ns1:Name xmlns:ns1="http://lcc/dm/common/v1.0">ExternalReference</ns1:Name>
<ns1:Value xmlns:ns1="http://lcc/dm/common/v1.0">9024896</ns1:Value>
</ns0:Identifier>
</ns0:Identifiers>
</ns0:WasteTask>
Я хотел бы выбрать узел Значение , у которого есть родной узел Имя , содержащий "ExternalReference", т.е. выбрать "9024896"
Я использовал xml spy для запуска xpath. Я надеялся, что "// ns1: Value" даст мне узлы Value , но выдает ошибку "Недопустимый префикс пространства имен".
xpath работает нормально, если я вручную добавляю объявление префикса ns1 в корневой узел, но у меня нет опции этого в реальном приложении.
Есть ли другой способ получить нужный мне результат с помощью xpath? Я пытался "/*/*[local-name()='Value']"
, но это не дало никаких результатов.