2013-11-15 31 views
0

我有這樣的小例子:XPath語法以提取節點

/* 
<elements id_srv=1233 id_elem=23> 
    <element value1=54 value2=33 value3=62 /> 
    <element value1=67 value2=14 value3=98 /> 
    <element value1=21 value2=45 value3=81 /> 
</elements> 
<elements id_srv=1233 id_elem=37> 
    <element value1=79 value2=41 value3=80 /> 
    <element value1=43 value2=17 value3=91 /> 
    <element value1=29 value2=85 value3=12 /> 
</elements> 
*/ 

elements.push({id_srv:1233; id_elem:23}); 
elements.push({id_srv:1233; id_elem:37}); 

for (var i=0;i<elements.length;i++) { 
    var node = xmlDoc.xpath('//elements[@id_srv='+elements[i].id_srv+';@id_elem='+elements[i].id_elem+'/element'); 
    for (var j=0;j<node.length;j++) { 
     var value1=elements_group.getElementByName("element").getAttribute("value1"); 
     var value2=elements_group.getElementByName("element").getAttribute("value2"); 
     var value3=elements_group.getElementByName("element").getAttribute("value3"); 
     [...doing whatever with attributes values...] 
    } 
} 

其中我試圖提取節點和它的兒童的作爲表示在註釋部分通過使用XPath所以然後我可以處理它的屬性發現它孩子的屬性....我的懷疑是xpath語法,因爲我什麼也沒有得到......是xpath語法的權利?

在此先感謝大家!

乾杯, 路易吉

回答

0

假設你想匹配的id_srcid_elem屬性,我想你想是這樣的

xmlDoc.xpath("//elements[@id_src='" + elements[i].id_src + 
    "' and @id_elem='" + elements[i].id_elem + "']/element") 
+0

嗨菲爾,我用VAR路徑=「//元素[id_srv ='「+ elements [i] .id_src +''and @id_elem ='」+ elements [i] .id_elem +「']」; var node = xmlDoc.evaluate(path,xmlDoc,null,9,null);因爲在Javascript中,我不能直接調用xpath,但即使在xmlDoc中,仍然會得到「undefined」,其中包含不同的節點的xml文檔...可能是什麼?... – Luigino

+0

或者至少,有沒有辦法讓它的子節點通過它的節點屬性進行過濾並且不使用xpath?... – Luigino

+0

Nevermind ...按照你的建議做了一個getElementByXpath函數來計算它的路徑...... – Luigino