1

でxmlを解析する際に奇妙な問題に直面していlibxmljsます。XML を解析するのはこれが初めてではなく、かなりの数の 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);

これにより、長さゼロの配列が生成されます。*/ShopOptionなど、さまざまな xquery 文字列を使用しようとしていますが//ShopOption、何もうまくいきません。

4

1 に答える 1

2

要素は、その祖先の<ShopOption/>名前空間を継承します。その名前空間は既に宣言されていますが、それも使用する必要があります。<SIG_Response/>https://sigtest.tais.ru/SIG/

//SIG:ShopOptions/SIG:ShopOption

試した他の 2 つのクエリも名前空間を使用しません。現在のコンテキスト (おそらくここのルート) から始まる*/ShopOptionすべての第 2 レベルの子を探します。名前空間のない要素も検索します。<ShopOption/>//ShopOption

于 2014-09-08T07:17:42.150 に答える