Форум сайта python.su
14
ElementTree.tostring(elem, 'utf-8')
root.append(Element('method', OrderedDict([ ('attr1', 'value1'), ('attr2', 'value2'), ])))
Отредактировано odnochlen (Ноя. 12, 2012 20:45:15)
Офлайн
19
Я не знаю на счет cElementTree, но по спецификации xml порядок аттрибутов может быть любым, поэтому некоторые библиотеки складывают аттрибуты в одному им известном порядке.
Собственно я с этим столкнулся когда утилита, котрой я кормил xml читала аттрибуты не по именам а по индексу и использовала libxml2 а я генерировал xml при помощи xerces который об порядке аттрибутов ничего не знал.
И еще вот
http://stackoverflow.com/questions/2741480/can-elementtree-be-told-to-preserve-the-order-of-attributes
Отредактировано cutwater (Ноя. 12, 2012 20:52:14)
Офлайн
14
С чтением еще можно жить.
Тут пробегала тема, человек хотел сохранять dict в определенном порядке, чтобы файлы сравнивать по содержимому в svn. Мне это надо просто для читаемости, один из аттрибутов длииинный.
Особо возиться с утилитами не хочется, тогда уже проще printf сделать.
From section 3.1 of the XML recommendation:Интересно, а почему только в корневом или пустом элементе?Note that the order of attribute specifications in a start-tag or empty-element tag is not significant.
Отредактировано odnochlen (Ноя. 12, 2012 21:12:20)
Офлайн
19
odnochlen
Интересно, а почему только в корневом или пустом элементе?
Отредактировано cutwater (Ноя. 12, 2012 21:28:46)
Офлайн
18
odnochlenНе в корневом, а открывающем. В end-tag вроде вообще нельзя атрибуты писать
Интересно, а почему только в корневом или пустом элементе?
Отредактировано adray (Ноя. 12, 2012 21:32:24)
Офлайн
14
Т.е. в переводе на человеческий это должно было быть так:
Note that the order of attribute specifications is not significant.т.к. в других тегах атрибутов быть не может?
>>> file("\0") Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: file() argument 1 must be encoded string without NULL bytes, not str
TypeError: file() argument 1 may not contain NULL bytes
Отредактировано odnochlen (Ноя. 13, 2012 03:21:59)
Офлайн
18
Д.
Офлайн