-1

我在 REDIS 中有 4000 多个键值记录。我到服务器的 XML 文件应该是这样的:

<?xml version="1.0" encoding="utf-8"?>
<resources>
     <string name="Address">Address</string>
     <string name="AppName">App</string>
</resources>

我需要使用可以从 DB 获得的所有值生成 XML 文件(数量可能不同)。我之前看到的所有示例都具有预定义的结构 - 总是提前知道会有多少行。但在我的情况下,它总是不同的数字。如何生成“带循环”的 XML 文件?

4

1 回答 1

1

您可以使用 jinja2 :

 from jinja2 import Environment, PackageLoader, select_autoescape   
 import os

 def write_xml(list_data):
      env = Environment(
               loader = PackageLoader('path', 'to', 'template', 'directory'),
               autoescape = select_autoescape(['html', 'xml'])
               )
      template = env.get_template('template.xml')
      output_from_parsed_template = template.render(values=list_data)
      path = os.path.join("path", "to", "output")
      with open(str(path), "wb+") as fh:
            fh.write(output_from_parsed_template.encode('utf-8'))

您的 template.xml 文件:

 <?xml version="1.0" encoding="utf-8"?>
     <resources>
       {% for value in values %}
         <string name="Address">{{ value.Address }}</string>
         <string name="AppName">{{ value.App }}</string>
       {% endfor %}
     </resources>
于 2018-08-08T13:20:53.503 回答