python 写XML时怎么禁止转义

Python017

python 写XML时怎么禁止转义,第1张

最后解决办法:

使用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__属性可以获得字典,希望能帮到你

你的串号我已经记下,采纳后我会帮你制作