使用HTMLParser
把输出的xml转换一遍
html_parser = HTMLParser.HTMLParser()
tranform = html_parser.unescape(self.dom.toxml().decode('utf-8'))
1. 我上面这段xml代码,一开始没有注意看,在每一个元素的结尾元素中都含有转义符,这就是为什么我用xml解析插件时一直保报错的原因,因为他不是正规的xml格式。我的方法是用正则替换掉:re.sub(r'(<)\\(/.+?>)',r'\g<1>\g<2>',f_xml) 对于Python中的正则re的sub用法2. 处理成正规的xml格式后,我这里还是用ElementTree来解析的,但在加载时又报错:
cElementTree.ParseError: XML or text declaration not at start of entity: line 2, column 0
这个错误我在网上没有找到合适的答案,不过根据字面意思来解决,就是在开头的地方有错误。这里我尝试这吧xml的文档声明给去掉了,居然没有报错。这里有些不理解为什么不能加? 我的方法:f_xml=test_xml.replace('<?xml version="1.0" encoding="gbk"?>','')
3. 然后再加载,就能获取到相应的节点了。
ajax是属于template里面的一个异步请求而已,如果你在views里面传回来是你说的“实体对像(models)”的话,我就有点搞不明白了。。。不知道你在那个view方法直接return的是什么?
如果使用json处理对象的话请使用:
from django.http import HttpResponse
from models import mymodels
import simplejson
...
def ajax(request):
a = mymodels.objects.all()[0]
'''
此处假设a中有name、age参数
model对象是不能直接作为json可以处理,必须先转换为dict类型
'''
result = {}
result['name'] = a.name
result['age'] = a.age
result = simplejson.dumps(result)
return HttpResponse(result)
此时用ajax访问这个试图返回的内容就是:
上面这种办法不是很好,建议先写一个template模板专门来显示此model内容。
假设模板ajax.html的内容为:
===================ajax.html===============
name: }<br />
age: }
=======================================
views视图如下:
from django.http import HttpResponse
from models import mymodels
from django.shortcuts import render_to_response
...
def ajax(request):
a = mymodels.objects.all()[0]
return render_to_response("ajax.html",)
此时用ajax访问这个视图返回的内容就是:
name: Jim Green
age: 14
以上的代码可能会有错误,因为是随手写的,希望能够帮到你
====修改了一下====
模板文件名打错了。。。
修改了一下就到了楼上的下面了,楼上你也太没水准了。直接复制
=====修改=====
使用model.__dict__属性可以获得字典,希望能帮到你
你的串号我已经记下,采纳后我会帮你制作