python l xml xpath не может разобрать цитату апостроф - PullRequest
1 голос
/ 13 февраля 2020

Я пытаюсь прочитать параметр из файла XML с указанием следующего пути:

путь к параметру в xml = "имя_узла / узла2 / имени параметра"

parser = etree.parse(xml_file_path, etree.XMLParser(encoding='utf-8', recover=True, huge_tree=True))
parser.xpath("./SPLIT/NODE[contains(text(), 'node1')]/SPLIT/NODE[contains(text(), 'node2')]/SPLIT/NODE[contains(text(), 'param's name')]")

Из-за одинарной кавычки в имени узла, я получаю этот eeror - {XPathEvalError} Неверное выражение. Тот же код работает нормально, если нет одинарной кавычки.

Я попытался найти решение в l xml xpath документации, но не смог найти какой-либо механизм, чтобы пропустить эту единственную цитату. Я нашел подобный вопрос, но у него нет ответа. Я также попытался заменить одинарную кавычку на ', но ничего не вышло. Пожалуйста, дайте мне знать, если есть способ пропустить одиночную кавычку или я здесь что-то не так делаю.

1 Ответ

1 голос
/ 13 февраля 2020

Вы можете попробовать следующие варианты.

parser.xpath("""./SPLIT/NODE[contains(text(), "node1")]/SPLIT/NODE[contains(text(), "node2")]/SPLIT/NODE[contains(text(), "param's name")]""")

Короче

.//NODE[text()="node1/node2/param's name"]
...