不使用lxml的'resolve_entities”选项解决XML实体
创始人
2024-12-29 01:30:20
0

使用Python内置的xml.sax.handler.ContentHandler来解析XML,并在处理开始实体和结束实体时,手动解析实体并替换实体名为实体值。

from xml.sax.handler import ContentHandler
from xml.sax import make_parser

class MyContentHandler(ContentHandler):

    def __init__(self):
        self.data = ""

    def startElement(self, name, attrs):
        self.data = ""

    def endElement(self, name):
        print(self.data)

    def characters(self, content):
        self.data += content

    def startEntity(self, name):
        if name == "amp":
            self.data += "&"
        elif name == "lt":
            self.data += "<"
        elif name == "gt":
            self.data += ">"
        elif name == "quot":
            self.data += "\""
        elif name == "apos":
            self.data += "'"

parser = make_parser()
handler = MyContentHandler()
parser.setContentHandler(handler)
parser.parse("example.xml")

在此示例中,我们通过继承ContentHandler,定义了一个自定义处理程序MyContentHandler。在startEntityendEntity方法中,我们手动解析了实体,并将实体名替换为实体值。最后,我们使用make_parsersetContentHandler方法来解析XML文件,并使用自定义处理程序MyContentHandler来处理XML文件中的数据。

相关内容

热门资讯

透视辅助!hhpoker有后台... 透视辅助!hhpoker有后台操作吗,hhpoker德州机器人,科技教程(有挂教程)1、许多玩家不知...
透视计算!hhpoker视频巡... 透视计算!hhpoker视频巡查真的假的,hhpoker有后台操作吗,切实教程(有挂方法)小薇(透视...
透视挂透视!hhpoker脚本... 透视挂透视!hhpoker脚本下载,hhpoker脚本下载,2025新版教程(有挂详情)1、玩家可以...
透视有挂!hhpoker作弊码... 透视有挂!hhpoker作弊码,hhpoker真的假的,可靠教程(有挂解说)1、许多玩家不知道hhp...
透视线上!hhpoker是内部... 透视线上!hhpoker是内部控制吗,德州透视hhpoker,必备教程(有挂技巧)1、透视线上!hh...
透视新版!hhpoker免费透... 透视新版!hhpoker免费透视脚本,hhpoker怎么防作弊,技巧教程(有挂揭秘);1、玩家可以在...
透视肯定!hhpoker软件安... 透视肯定!hhpoker软件安装包,hhpkoer辅助器,可靠技巧(有挂介绍)所有人都在同一条线上,...
透视ai!hhpoker怎么破... 透视ai!hhpoker怎么破解,hhpoker真能买到挂吗,德州论坛(有挂细节);1、每一步都需要...
透视科技!hhpoker辅助软... 透视科技!hhpoker辅助软件,hhpoker外挂靠谱吗,2025新版教程(有挂揭秘);1、进入到...
透视黑科技!hhpkoer辅助... 透视黑科技!hhpkoer辅助挂是真的吗,hhpoker开挂教程,扑克教程(有挂工具)1、透视黑科技...