繁体   English   中英

如何在JavaScript中的XPath中包含字符串变量?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM