У меня возникают некоторые проблемы с lxml, которые не сохраняют исходный файл, например, если у меня есть xml-файл, содержащий:
<column caption='Choix Découpage' name='[Aujourd'Hui Parameter (copy 2)]'>
<alias key='"Frais de Services"' value='Offline Fees' />
</column>
, и я взгляну на атрибут ключа узла псевдонима
from lxml import etree
import sys
tree = etree.parse('test.xml')
root = tree.getroot()
print([node.attrib['key'] for node in root.xpath("//alias")]) # we get ['"Billetterie Ferroviaire"']
value = [node.attrib['key'] for node in root.xpath("//alias")][0]
Теперь, если я хочу получить все псевдонимы узла с атрибутом «Billetterie Ferroviaire», я могу это сделать (решение приведено в другом посте, еще раз спасибо):
root.xpath("//alias[@key='\"Frais de Services\"']")
Но представьте, что я хочу динамически сформировать запрос:
"//alias[@key='\"Frais de Services\"']"
, но Python использует простые кавычки для строк, поэтому я не могу написать именно этот запрос. Может быть, xpath понимает другую эквивалентную форму? Я немного растерялся, если бы кто-нибудь мог объяснить мне, почему Python использует простую цитату и что я могу сделать, чтобы решить такие проблемы (всегда ли есть альтернативные способы, когда я хочу сгенерировать строку для другой программы, чтобы передать ее с хорошей структурой). Надеюсь быть достаточно ясным, чтобы помочь.