我在使用libxmljs
解析xml时遇到了一个奇怪的问题。
它不是我解析的第一个XML,而且我已经完成了很多,但是this one行为真的很奇怪。
我有这些名称空间:
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
等。但没有任何效果。
答案 0 :(得分:2)
<ShopOption/>
元素继承其<SIG_Response/>
祖先https://sigtest.tais.ru/SIG/
的命名空间。您已经声明了该命名空间,但也必须使用它。
//SIG:ShopOptions/SIG:ShopOption
您尝试的其他两个查询也不使用命名空间。 */ShopOption
查找从当前上下文开始的所有二级<ShopOption/>
子项,可能是此处的根; //ShopOption
还会搜索没有命名空间的元素。