2013-11-15 37 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