XML文件如下:
<?xml version="1.0" encoding="gb2312">
<图书>
<书名>红楼梦</书名>
<作者>曹雪芹</作者>
<主要内容>描述贾宝玉和林黛玉的爱情故事</主要内容>
<出版社>人民文学出版社</出版社>
</图书>
一、python读取XML格式文件代码:
import xml.sax
import xml.sax.handler
class BooksHander(xml.sax.ContentHandler):
def __init__(self):
self.CurrentData=""
self.name=""
self.author=""
self.contents=""
self.press=""
def startElement(self,tag,attributes):
self.CurrentData=tag
if tag =="图书":
print("--------内容--------")
def endElement(self,tag):
if self.CurrentData=="书名":
print("书名:",self.name)
elif self.CurrentData=="作者":
print("作者:",self.author)
elif self.CurrentData=="主要内容":
print("主要内容:",self.contents)
elif self.CurrentData=="出版社":
print("出版社:",self.press)
self.CurrentData = ""
def characters(self,conten):
if self.CurrentData=="书名":
self.name=conten
elif self.CurrentData=="作者":
self.author=conten
elif self.CurrentData=="主要内容":
self.contents=conten
elif self.CurrentData=="出版社":
self.press=conten
if __name__ == '__main__':
parser=xml.sax.make_parser()
parser.setFeature(xml.sax.handler.feature_namespaces,0)
Handler=BooksHander()
parser.setContentHandler(Handler)
parser.parse("图书.xml")
二、将XML格式转换成json格式文件
import xmltodict
import json
xml=open('图书.xml','r',encoding='UTF-8')
xml_str=xml.read()
xml_json=xmltodict.parse(xml_str)
xml_json=json.dumps(xml_json,indent=4)
with open('图书.json','w') as f:
f.write(xml_json)