繁体   English   中英

如何将ET.dump()xml字符串从Django视图传递给模板 - python django ElementTree

[英]How to pass ET.dump() xml string from a Django view to a template — python django ElementTree

我想格式化一些XML并将其传递给Django模板。 在shell中,我能够使用以下代码成功创建XML字符串:

locations = Location.objects.all()
industries = Industry.objects.all()

root = ET.Element("root")

    for industry in industries:
        doc = ET.SubElement(root, "industry")
        doc.set("name", industry.text)
        for location in locations:
            if industry.id == location.company.industry_id:
                item = ET.SubElement(doc, "item")
                latitude = ET.SubElement(item, "latitude")
                latitude.text = str(location.latitude)
                longitude = ET.SubElement(item, "longitude")
                longitude.text = str(location.longitude)

然后,仍然在shell中, ET.dump(root)输出我期望的XML。

但是,如何使用ET.dump(root)将XML字符串从Django视图传递到模板文件?

我试图使用'xml_items': ET.dump(root)将其作为{{xml_items}} 'xml_items': ET.dump(root)并且我还尝试将ET.dump(root)分配给变量并将其传递为'xml_items': xml_items

在这两种情况下,模板都会为{{xml_items}}输出None

dump只是一个调试功能。 你应该使用tostring函数:

ET.tostring(root)

它将为您提供ET.dump()打印的确切内容,但作为字符串。

如果你正在使用lxml,你也可以使用

ET.tostring(root, pretty_print=True)

获得一个更好看的XML,但如果这只是由另一个代码层消耗,那么你真的不想要它。 它在ElementTree中没有。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM