XML для хранения системных путей в Python с помощью lxml - PullRequest
1 голос
/ 22 января 2010

Я использую 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)

файл будет:

Теперь я читаю это снова с помощью метода etree.parse

Я получаю дочерний объект etree со строковым значением, но строкой содержит

\ 3

символа, и если я попытаюсь использовать его для повторной записи в xml, он будет интерпретирован !!!!! Так что я больше не могу использовать его как путь Может быть, я пропускаю только простую строковую операцию, но не вижу ее =) Как бы вы решили это умным способом?

Это пример, но как вы думаете, как лучше хранить пути в xml и анализировать их с помощью lxml?

Спасибо !!

1 Ответ

1 голос
/ 22 января 2010

Теперь я читаю это снова с etree.parse метод

Я получаю дочерний объект etree с строковое значение, но строка содержит

\3

символов, и если я пытаюсь использовать его для напиши еще раз в xml это будет истолковано !!!!!

Я только что попробовал это, и это не "интерпретируется". Атрибуты элементов, возвращаемые после анализа:

{'type': 'str', 'name': 'yowza!', 'value': 'c:\\test\\3 tests\\test'}

Итак, как вы видите, это работает так, как вы ожидали, что это сработает. Если у вас действительно есть эта проблема, вы делаете что-то другое, чем то, что вы говорите. Покажите нам реальный код или создайте небольшой пример кода, где вы демонстрируете проблему и используете ее.

...