2014-09-08 2 views
1

У меня возникла странная проблема с разбором xml с помощью libxmljs. Это не мой первый XML-анализ, и я сделал немало их, но this one действует действительно странно.Wierd XML не анализируется

У меня эти пространства имена:

var nsUri = { 
     "xmlns:SOAP-ENV": "http://schemas.xmlsoap.org/soap/envelope/", 
     "xmlns:SIG": "https://sigtest.tais.ru/SIG/" 
    }; 

И делает это:

var xmlDoc = xmljs.parseXml(providerResponse); 
var ShopOptions = xmlDoc.find('//ShopOptions/ShopOption',self.provider.nsUri); 

что приводит к нулевому массиву длины. Я пытаюсь пойти на разные укусы xquery: */ShopOption, //ShopOption и т. Д. Но ничего не получается.

ответ

2

Элемент <ShopOption/> наследует пространство имен своего предка <SIG_Response/>, https://sigtest.tais.ru/SIG/. Вы уже объявили это пространство имен, но также должны использовать его.

//SIG:ShopOptions/SIG:ShopOption 

Другие два запрошенных вами запроса также не используют пространства имен. */ShopOption ищет всех детей второго уровня <ShopOption/>, начинающихся с текущего контекста, возможно, здесь root; //ShopOption также выполняет поиск элементов без пространства имен.

Смежные вопросы