【问题标题】:SSS version with lxml builder带有 lxml 构建器的 SSS 版本
【发布时间】:2021-06-02 04:16:18
【问题描述】:

我正在使用 lxml builder Element,我想知道如何更改 sss 版本?

我创建 .xml 的代码如下:

import lxml.etree
import lxml.builder

new_xml = lxml.builder.ElementMaker()
sss = new_xml.sss
date = new_xml.date
user = new_xml.user
survey = new_xml.survey
record = new_xml.record
variable = new_xml.variable
name = new_xml.name
label = new_xml.label

today_date=date.today().strftime('%Y-%m-%d') #today's date
uniq_list = ['a','b','c']
labels = ['a','b','c']
nvars = len(uniq_list)

for i in range(nvars):
    final_xml = (sss(
            date(today_date),
            user(username),
            survey(record(
                    *[variable(
                            name(uniq_list[i]),
                            label(labels[i]),
                            ident = str(i+1))
                     for i in range(nvars)],ident = 'A'))))
        
newxml = lxml.etree.tostring(final_xml, xml_declaration=True, encoding='utf-8', pretty_print=True)
with open(path+r"/"+stage+'_'+str(today_date)+'.xml','w') as myfile:
    myfile.write(newxml)

这段代码给了我以下信息:

<?xml version='1.0' encoding='utf-8'?>
<sss>
  <date>2021-03-03</date>
  <user>username</user>
  <survey>
    <record ident="A">

但我们现在有 sss version='1.2',甚至是 2.0。可以设置版本吗?

【问题讨论】:

  • 您是在问如何添加version 属性吗?
  • 是的,一个版本属性。我的意思是 Triple S 的 2.0 版允许一些 1.0 版没有的可能性。我没有找到添加它的方法。我只放了部分代码,因为它很长 - 但如果需要我可以编辑它。
  • 我已经添加了列表,所以代码应该可以工作。

标签: python-2.7 lxml triples


【解决方案1】:

您可以使用字典添加属性。这是一个简化的例子:

import lxml.etree
import lxml.builder
 
new_xml = lxml.builder.ElementMaker()
sss = new_xml.sss
date = new_xml.date
user = new_xml.user
 
final_xml = sss({"version": "2.0"},
             date("2021-03-03"),
             user("John Doe")
            )

lxml.etree.dump(final_xml, pretty_print=True)

输出:

<sss version="2.0">
  <date>2021-03-03</date>
  <user>John Doe</user>
</sss>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-11-25
    • 2017-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-10
    • 2023-03-04
    • 1970-01-01
    相关资源
    最近更新 更多