swnuv
  • 3.7k

xml中如何定义变量呀,如下ip地址都是相同的,每次修改都要改三次?

        <urlauto>http://172.16.9.83:8080/dev/ask.action</urlauto>
        <urlupload>http://172.16.9.83:8080/fileserver/upload</urlupload>
        <urldownload>http://172.16.9.83:8080/fileserver/Download</urldownload>
阅读 335
评论 2019-07-17 提问
    1 个回答
    Hawaii
    • 939

    可以使用模板引擎,将xml中的字段作为模板变量,使用时传递变量的实际值到模板完成渲染。
    以Python的常用模板引擎Jinja2为例:
    首先pip install jinja2
    编写如下的文件,命名为render.py

    import sys
    from jinja2 import Environment, FileSystemLoader
    
    if __name__ == '__main__':
        if len(sys.argv) < 2:
            print('You must provide a url as the first argument.')
            sys.exit(1)
        url = sys.argv[1]
        env = Environment(loader=FileSystemLoader('.'))
        template = env.get_template('template.xml')
        with open('output.xml', 'w') as f:
            f.write(template.render({'url': url}))

    接下来,将下面的模板命名为template.xml,放在和render.py相同目录下

    <urlauto>{{ url }}/dev/ask.action</urlauto>
    <urlupload>{{ url }}/fileserver/upload</urlupload>
    <urldownload>{{ url }}/fileserver/Download</urldownload>

    最后,执行python render.py http://172.16.9.83:8080,你就可以得到一个渲染好的output.xml文件了。

    评论 赞赏 2019-07-17
      撰写回答

      登录后参与交流、获取后续更新提醒