Как я могу включить строковую переменную в мой XPath в JavaScript? - PullRequest
0 голосов
/ 07 июня 2019

У меня есть функция, которая анализирует XML-файл с использованием XPath и возвращает результаты в виде 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, но гуглил, и он говорит мне, что двойные и одинарные кавычки - это одно и то же ..

1 Ответ

0 голосов
/ 07 июня 2019

Попробуйте этот подход ниже.

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";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...