Python/Django中xml.dom.minidom Document()输出内存地址

0 投票
1 回答
2003 浏览
提问于 2025-04-15 12:16

我正在同时学习Python和Django。我想创建一个XML文档,以便从视图中返回一些XML内容。目前我在使用Django的开发服务器,但我在视图中总是看到一些信息,而不是我想创建的文档。

这是我的代码:

    from django.http import HttpResponse
    from mypoject.myapp.models import Username
    from django.core import serializers
    from xml.dom.minidom import Document
    import datetime


    def authenticate(request, username):
        if request.method == "GET":

            #Try to get the username
            try:
                checkUser = Username.objects.get(username__exact = username)
                user = userCheck.get(username__exact = username)
                userXML = serializers.serialize("xml", checkUser)

            except Username.DoesNotExist:
                #return XML with status "Failed"
                return HttpResponse(xml, mimetype="text/xml")       
            except:
                #return XML with status "Failed"

                xmlFailed = Document()

                meta = xmlFailed.createElement("meta")
                xmlFailed.appendChild(meta)

                status = xmlFailed.createElement("status")
                meta.appendChild(status)
                statusText = xmlFailed.createTextNode("Failed")
                status.appendChild(statusText)

                message = xmlFailed.createElement("message")
                meta.appendChild(message)

                totalRecords = xmlFailed.createElement("totalRecords")
                meta.appendChild(totalRecords)

                executionTime = xmlFailed.createElement("executionTime")
                meta.appendChild(executionTime)

                return HttpResponse(xmlFailed, mimetype="text/xml")
            else:
                #return happy XML code with status "Success"

这是我在浏览器中查看时显示的内容……

<xml.dom.minidom.Document instance at 0x993192c>

如果我把Document()的创建部分注释掉,这个问题就消失了。所以我觉得我只需要让它不输出这些信息。我到处搜索,但找不到直接的答案,这让我觉得我可能遗漏了一些显而易见的东西。

谢谢大家的帮助!

1 个回答

1

你需要调用 xmlFailed.toxml() 这样的代码,才能从你的对象中获取到XML格式的数据。看起来你在你没有展示的代码里并没有这样做。

撰写回答