pyquery write xml


Python:minidom 解析 GBK 编码的 XML 字符串

Python 语言里 minidom 只能解析 UTF-8 编码的XML文件或串,我解析其它的编码的方法修改 XML 标记的 encoding 属性,转换编码。

<?xml version="1.0" encoding="GBK" ?>
<test>
    <name>test</name>
</test>
buffer = xml_string.decode("gbk").encode("utf-8")[37:]
xml_string = '''<?xml version="1.0" encoding="UTF-8" ?>''' + buffer

这样就可以 minidom 正确解析了。

Over!

#!/usr/bin/env python

#encoding=utf-8

import sys

reload(sys)

sys.setdefaultencoding(sys.stdout.encoding)

from pyquery import PyQuery as pq

file="/home/mlzboy/code/by/xmls/showproduct.asp?id=1.xml"

s=pq(filename=file)

s("field[@name='%s']"%"bigImage").text("11")

print s.text()

print "---------------"

print s.html()

print "================"

r=s.outerHtml()

print r

open(file+".bak","w").write(s.outerHtml())#outerHtml seems has some issue

#below is good

r='<?xml version="1.0" encoding="utf-8"?>'+s.wrap("<add></add>").html()

open(file+".bak2","w").write(r)

print "done"

原文地址:https://www.cnblogs.com/lexus/p/1846384.html