2013-09-24 2 views
0

У меня есть огромный XML-документ. Когда я проверяю с помощью XPath = // RequestHeader возвращенного результат ниже:xpath не может получить узлы с пространством имен

<requestHeader> 
     <!--Optional:--> 
     <req:clientCode xmlns:req="http://www.ibb.com/ws/requestHeader">?</req:clientCode> 
     <!--Optional:--> 
     <req:clientUsername xmlns:req="http://www.ibb.com/ws/requestHeader">CC</req:clientUsername> 
     <!--Optional:--> 
     <req:channel xmlns:req="http://www.ibb.com/ws/requestHeader">?</req:channel> 
     <!--Optional:--> 
    </requestHeader> 

И еще, мне нужно получить значение clientUsername. К сожалению // requestHeader // req: clientUsername возвращает пустую строку. что с этим не так?

Вы можете проверить с: http://www.xpathtester.com/test

+0

Вы указали контекст пространства имен для 'req' в парсере? –

+0

Нет, как это можно определить? – user2812233

+0

Зависит от API к используемому движку XPath, который вы не указали. –

ответ

0

поставить пространство имен в верхней файл XML так:

<?xml version="1.0" encoding="UTF-8"?> 
<requestHeader xmlns:req="http://www.ibb.com/ws/requestHeader"> 
    <!--Optional:--> 
    <req:clientCode>?</req:clientCode> 
    <!--Optional:--> 
    <req:clientUsername>CC</req:clientUsername> 
    <!--Optional:--> 
    <req:channel>?</req:channel> 
    <!--Optional:--> 
</requestHeader> 

теперь вы можете использовать xpath вроде так

//requestHeader/req:clientUsername 
Смежные вопросы