Я использую xml файл для хранения конфигураций для программного обеспечения.
Одна из этих конфигураций будет системным путем, например
> set_value = "c:\\test\\3 tests\\test"
я могу сохранить его, используя:
> setting = etree.SubElement(settings,
> "setting", name=tmp_set_name, type =
> set_type , value= set_value)
Если я использую
doc.write(output_file, method='xml',encoding = 'utf-8', compression=0)
файл будет выглядеть следующим образом:
< type type = "str" name= Значение "MyPath" = "c:\test\3 tests\test" /" >
Теперь я прочитал его снова с помощью метода etree.parse
Я получаю дочерний объект etree со строковым значением, но строка содержит
\ 3
и если я попытаюсь использовать его для записи снова в xml, он будет интерпретироваться!!!!! Поэтому я больше не могу использовать его в качестве пути Может быть, мне просто не хватает простой операции с строкой, но я не вижу ее =) Как бы вы решили это разумно?
Это пример, но как лучше всего вы думаете хранить пути в xml и анализировать их с помощью lxml?
Спасибо!
Теперь я прочитал его снова с помощью метод etree.parse
Я получаю дочерний объект etree с string, но строка содержит далее
\3
и если я попытаюсь использовать его для снова напишите в xml, это будет интерпретируется!!!!!
Я просто попробовал это, и он не интерпретируется. Атрибуты элементов, возвращаемые после разбора:
{'type': 'str', 'name': 'yowza!', 'value': 'c:\\test\\3 tests\\test'}
Итак, как вы видите, это работает так же, как вы ожидали, что это сработает. Если у вас действительно есть эта проблема, вы делаете что-то еще, чем то, что вы говорите. Покажите нам реальный код или создайте небольшой пример кода, в котором вы демонстрируете проблему и используете ее.