1
なぜこのJavaScriptコードが1ではなく0を出力するのか説明できますか?また、要素// e [2]と// e [3]がスワップされている場合、それは動作します、なぜですか?MSXML文字列比較の問題
doc = new ActiveXObject("MSXML2.DOMDocument.4.0");
doc.loadXML(
"<r> " +
" <e id='a'> " +
" <e id='b'/> " +
" <e id='c'/> " +
" </e> " +
"</r> ")
doc.setProperty("SelectionNamespaces", "xmlns:ms='urn:schemas-microsoft-com:xslt'");
WScript.Echo(doc.selectNodes("/r/e[ms:string-compare(e/@id,'c','en-US', 'i')=0]/@id").length);
は、なぜあなたは '([!= 'C' @id]/R/E/E)を'、カウントを使用していませんか? –
これは変ですが、WScript.Echo(doc.selectNodes( "/ r/e [e/@ id = 'c']/@ id))。しかし、動作します。 –
@Alejandroと@Samuel Zhang:質問とxpathを更新しました。大文字と小文字を区別しない検索をしたいのですが、string-compare関数がバグだと思われます。元々は3番目と4番目のパラメータを追加していませんでした。なぜならどちらもうまくいかず、サンプルコードをできるだけシンプルに保つためでした。 – Mike