У меня проблемы с размещением переменной в моем выражении XPath.
Я хочу создать поисковый термин, который я могу изменить из входных данных, и использовать его в выражении XPath, но второй приведенный ниже пример дает сбой.
1. Это работает
var nodesSnapshot = document.evaluate("//option[text()[not(contains(., 'test'))]]", document, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
for (var i = 0; i < nodesSnapshot.snapshotLength; i++) {
console.log(nodesSnapshot.snapshotItem(i));
}
<select>
<option>cat</option>
<option>test</option>
<option>dog</option>
</select>
2. Это не удается
var searchTerm = 'test';
var xPath = '"' + "//option[text()[not(contains(.,'" + searchTerm + "'))]]" + '"';
console.log(xPath);
var nodesSnapshot = document.evaluate(xPath, document, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
for (var i = 0; i < nodesSnapshot.snapshotLength; i++) {
console.log(nodesSnapshot.snapshotItem(i));
}
<select>
<option>cat</option>
<option>test</option>
<option>dog</option>
</select>