我正在尝试生成此xml文件:
<?xml version='1.0' encoding='UTF-8'?>
<portlet-preferences>
<portlet-preference definitionLabel="SharedPreferencesPortlet" user="*">
<preference name="serverinvoketimeout" description="The description" isModifiable="true" isMultivalued="false" value="360"/>
<preference name="followchanges" description="The description" isModifiable="true" isMultivalued="false" value="false"/>
</portlet-preference>
使用以下脚本:
from lxml import etree
from lxml.builder import ElementMaker
E = ElementMaker()
format = E.portletpreference(
E.preference(value="360", isMultivalued="false", isModifiable="true", description="The description", name="serverinvoketimeout"),
E.preference(value="false", isMultivalued="false", isModifiable="true", description="The description", name="followchanges"),
user="*",
definitionLabel="SharedPreferencesPortlet"
)
root = E.portletpreferences(
format,
)
print(etree.tostring(root, xml_declaration=True, encoding='utf-8', pretty_print=True))
结果:
<?xml version='1.0' encoding='utf-8'?>
<portletpreferences>
<portletpreference definitionLabel="SharedPreferencesPortlet" user="*">
<preference isModifiable="true" isMultivalued="false"
name="serverinvoketimeout" value="360" description="The description"/>
<preference isModifiable="true" isMultivalued="false"
name="followchanges" value="false" description="The description"/>
</portletpreference>
</portletpreferences>
问题:
lxml适合这种情况吗?
怎样才能得到正确的订单?
例如:<preference name="serverinvoketimeout" description="The description" isModifiable="true" isMultivalued="false" value="360"/>
如何在元素名中获得符号?
示例:
<portlet-preferences>
正如评论者提到的,属性的排序应该不重要。对于第二个问题,
ElementMaker
实例采用一个字符串进行构造,因此:相关问题 更多 >
编程相关推荐