Я пытаюсь создать функцию, которая будет правильно указывать/удалять атрибут в XPath. Я видел решения, размещенные в C# here и here, но моя реализация в JavaScript приводит к ошибке «Это выражение не является юридическим выражением»Атрибут XPath, цитируемый в JavaScript
Вот моя функция:
function parseXPathAttribute(original){
let result = null;
/* If there are no double quotes, wrap in double quotes */
if(original.indexOf("\"")<0){
result = "\""+original+"\"";
}else{
/* If there are no single quotes, wrap in single quotes */
if(original.indexOf("'")<0){
result = "'"+original+"'";
}else{ /*Otherwise, we must use concat() */
result = original.split("\"")
for (let x = 0;x<result.length;x++){
result[x] = result[x].replace(/"/g,"\\\"");
if (x>0){
result[x] = "\\\""+result[x];
}
result[x] = "\""+result[x]+"\"";
}
result = result.join();
result = "concat("+result+")";
}
}
return result;
}
Ввод пробы неудачи:
"" привет"
Sample неудачу выход:
CONCAT ("", "\" 'привет' " "\"")]
Я не понимаю, почему это является незаконным выражение (при условии, что двойные кавычки экранируются), поэтому я не знаю, как исправить эту функцию.
Я разрабатываю приложение клиента с помощью платформы Mozilla. Это не для браузера. Благодарю. – pc1oad1etter