functiontestXml(){varobjXml=newActiveXObject('MSXML2.DOMDocument');varstrXml="abcd";objXml.setProperty("SelectionLanguage","XPath");objXml.loadXML(strXml);varobjaa=objXml" />

黄色网页视频 I 影音先锋日日狠狠久久 I 秋霞午夜毛片 I 秋霞一二三区 I 国产成人片无码视频 I 国产 精品 自在自线 I av免费观看网站 I 日本精品久久久久中文字幕5 I 91看视频 I 看全色黄大色黄女片18 I 精品不卡一区 I 亚洲最新精品 I 欧美 激情 在线 I 人妻少妇精品久久 I 国产99视频精品免费专区 I 欧美影院 I 欧美精品在欧美一区二区少妇 I av大片网站 I 国产精品黄色片 I 888久久 I 狠狠干最新 I 看看黄色一级片 I 黄色精品久久 I 三级av在线 I 69色综合 I 国产日韩欧美91 I 亚洲精品偷拍 I 激情小说亚洲图片 I 久久国产视频精品 I 国产综合精品一区二区三区 I 色婷婷国产 I 最新成人av在线 I 国产私拍精品 I 日韩成人影音 I 日日夜夜天天综合

selectSingleNode方法中,用[0]還是[1]來選第一

系統 2280 0
????今天寫了這樣一段代碼:
< script?language = " javascript " >
???
function ?testXml()
???
{
??????
var ?objXml? = ? new ?ActiveXObject('MSXML2.DOMDocument');
??????
var ?strXml? = " <xml><aa>abcd</aa></xml> " ;
??????objXml.setProperty(
" SelectionLanguage " , " XPath " );
?????
??????objXml.loadXML(strXml);
??????
var ?objaa? = ?objXml.selectSingleNode( " xml/aa[0] " );
??????alert(objaa.text);
???}

???testXml();
</ script >
?? 系統拋出異常,未找到對象。也就是objXml.selectSingleNode("xml/aa[0]");返回的是null。"xml/aa[0]"是如此簡單的表達式,錯誤只有可能出在"[0]"上。查閱了一些資料后,將objXml.selectSingleNode("xml/aa[0]");修改成objXml.selectSingleNode("xml/aa[1]"),運行通過成功找到了節點。原來Xpath中節點計數是從1開始的。
??? 也許事情不是這樣簡單,我曾經隱約記得寫過objXml.selectSingleNode("xml/aa[0]")這樣的代碼,并且也能正確的找到節點。我將代碼進行了以下修改:
< script?language = " javascript " >
???
function ?testXml()
???
{
??????
var ?objXml? = ? new ?ActiveXObject('MSXML2.DOMDocument');
??????
var ?strXml? = " <xml><aa>abcd</aa></xml> " ;
??????
// objXml.setProperty("SelectionLanguage","XPath");不再采用Xpath方式
?????
??????objXml.loadXML(strXml);
??????
var ?objaa? = ?objXml.selectSingleNode( " xml/aa[1] " );
??????alert(objaa.text);
???}

???testXml();
</ script >
???? 系統拋出異常,提示未找到對象。難道非Xpath方式選取節點,節點計數是從0開始的?我將objXml.selectSingleNode("xml/aa[1]")修改成objXml.selectSingleNode("xml/aa[0]"),代碼成功運行,并且找到節點。
??? 由此我們不難看出,非Xpath方式選取節點時,第一個節點用[0]來標示;而用Xpath方式選取節點時,第一個節點用[1]來標示。注意,只有在MSXML2.DOMDocument 4.0以下版本才默認采用非Xpath方式選取節點,即類似正則表達式的方式選取。
???? 為什么會造成這種情況呢?也許是當年微軟設計該組件的時候Xpath標準還沒有正式出臺,也或者是Xpath標準沒有兼顧微軟以前的設計,出現了最不應該出現的不兼容性。

selectSingleNode方法中,用[0]還是[1]來選第一個匹配節點呢?


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論