【问题标题】:how to display rendered values in xml format如何以 xml 格式显示渲染值
【发布时间】:2013-07-05 12:31:40
【问题描述】:

我的模板文件中有这个:

<?xml version="1.0" encoding="utf-8" ?>
<entries>
    {% for entry in entries %}
    <entry>{{ entry.entry_id }}</entry>
    {{ endfor }}
</entries>

在我看来:

...
return render(request, 'entries.xml', {'entries': entries})

当我想显示数据时,它显示如下:

1 2 3 4 ...

但想要的结果是:

<?xml version="1.0" encoding="utf-8" ?>
<entries>
    <entry>1</entry>
    <entry>2</entry>
    <entry>3</entry>
    <entry>4</entry>
    ...
</entries>

如何在浏览器中显示所有带有标签的xml树?

【问题讨论】:

  • 您能否澄清一下,所需的输出是什么?您在哪里显示您的数据?
  • 为什么不使用 django-tastypie.readthedocs.org 和格式类型为 xml ...或检查这个问题 ..stackoverflow.com/questions/3829442/…
  • @alecxe:帖子已更新。
  • @boltsfrombluesky: 如何使用格式类型?
  • 我刚刚尝试了您的代码,它看起来不错.. 如果您使用的是 chrome,请按 ctrl+u 并查看它正确显示 xml 的源

标签: xml django


【解决方案1】:

你的xml文件一定是这样的

<?xml version="1.0"?>
    <test>{% for entry in entries %}
         <entries>
            <entry>{{ entry.id }}</entry>
         </entries>{% endfor %}
    </test>

要在浏览器中查看此数据,您必须指明内容类型

from django.shortcuts import render_to_response

def view_in_xml(request):
    response = render_to_response('robots.xml', {'entries': YourModel.objects.all(),})
    response['Content-Type'] = 'application/xml;'
    return response

就是这样!

【讨论】:

    【解决方案2】:

    我没有尝试过这个..但我认为这会在你的浏览器中得到你想要的,但这不是真正的 xml

    &lt;?xml version="1.0" encoding="utf-8" ?&gt;<br/>
    &lt;entries&gt; <br/>
        {% for entry in entries %}
            &nbsp;&nbsp;&nbsp;&nbsp;&lt;entry&gt;{{ entry.entry_id }}&lt;/entry&gt; <br/>
        {{ endfor }}
    &lt;/entries&gt;
    

    【讨论】:

    • 我建议您使用您的原始代码并使用一些 chrome 插件 .. 或使用 IE 它默认显示 xml .. 如果您需要着色效果,您需要添加更多的 html 标签。 .
    • 我认为在 render args 中有类似 mimetype 或 aplication-type 之类的 render() 参数我找不到它!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多