[英]How can I include a string variable in my XPath in JavaScript?
我有一个使用XPath解析xml文件的函数,并在html表中返回结果。 我想修改我的XPath以包含另一个字符串变量,但无法使其工作。
我已经尝试了+ s和“”的各种组合,但似乎无法使其工作,更重要的是,甚至用双引号替换路径变量中的单引号会破坏函数。
// doesnt work with IE!!
function showResult(xml) {
var txt = ""; //string for result
var lu_ID = "940gzzlu";
var path = '/svg/g[@id="interchange-circles"]/g[contains(@id,"940gzzlu")]/g/path[@class="blue-fill"]/@d | /svg/g[@id="interchange-circles"]/g[contains(@id,"940gzzlu")]/g/path[@class="blue-fill"]/../../@id';
if (xml.evaluate) {
var nodes = xml.evaluate(path, xml, null, XPathResult.ANY_TYPE, null); //select first path and pass result to nodes
var result = nodes.iterateNext();
while (result) {
//check if first letter is M so know its the coordinate
var crrPath = result.nodeValue;
if(crrPath.substring(0,1)=="M"){
txt += "<td>" + result.nodeValue + "</td>";
} else {
txt += "<tr><td>" + result.nodeValue + "</td>";
}
result = nodes.iterateNext();
}
}
document.getElementById("stationlist").innerHTML = txt;
//alert(txt);
}
我想将lu_ID变量添加到路径变量并返回相同的结果。 目前,即使替换路径变量中的单引号也会破坏代码。 我是JavaScript新手,但谷歌搜索它,它告诉我双引号和单引号是一样的..
尝试以下方法。
var path = "/svg/g[@id='interchange-circles']/g[contains(@id,'"+lu_ID +"')]/g/path[@class='blue-fill']/@d | /svg/g[@id='interchange-circles']/g[contains(@id,'"+lu_ID +"')]/g/path[@class='blue-fill']/../../@id";
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.