|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
"""
python sax解析xml
"""
import xml.sax
class SchoolHandler(xml.sax.ContentHandler):
def __init__(self):
self.CurrentData = ""
self.name = ""
self.format = ""
# 开始调用
def startElement(self, tag, attributes):
self.CurrentData = tag
if tag == "school":
print("******************school****************")
level = attributes['level']
print("Level: ", level)
# 结束调用
def endElement(self, tag):
if self.CurrentData == "name":
print("name:", self.name)
elif self.CurrentData == "year":
print("year:", self.year)
self.CurrentData = ""
# 读取字符时调用
def characters(self, content):
if self.CurrentData == "name":
self.name = content
elif self.CurrentData == "year":
self.year = content
if __name__ == "__main__":
# 创建一个XMLReader
parser = xml.sax.make_parser()
# turn off namepsaces
parser.setFeature(xml.sax.handler.feature_namepsaces, 0)
# 重写ContextHandler()
Handler = SchoolHandler()
parser.setContentHandler(Handler)
parser.parse("school_sax.xml")
产生如下错误:
D:\pythonProject2\Scripts\python.exe D:\pythonProject1\SAX_DOM.py
Traceback (most recent call last):
File "D:\pythonProject1\SAX_DOM.py", line 43, in <module>
parser = xml.sax.make_parser()
^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\HP\AppData\Local\Programs\Python\Python312\Lib\xml\sax\__init__.py", line 88, in make_parser
raise SAXReaderNotAvailable("No parsers found", None)
xml.sax._exceptions.SAXReaderNotAvailable: No parsers found
进程已结束,退出代码1
从网上找不到解决方法
问题描述:
您在使用Python的xml.sax模块解析XML时遇到了问题。您尝试使用 xml.sax.make_parser()创建XMLReader对象时出现了错误。
错误信息:
错误信息显示 SAXReaderNotAvailable: No parsers found,表示没有找到可用的解析器。
解决方法:
这种错误通常是由于缺少适当的解析器库所致。为了解决这个问题,您可以尝试以下几种方法:
1. 确保您已安装了适当的解析器库,例如 python-xml、 python-lxml或 python3-lxml。您可以尝试使用以下命令安装其中一个库:
- pip install python-xml
- pip install lxml(需要C编译工具)
- apt-get install python3-lxml(适用于Debian/Ubuntu系统)
- yum install python3-lxml(适用于CentOS/RHEL系统)
2. 如果您已经安装了解析器库但仍然遇到问题,请确认您的Python解析器和解析器库是否匹配。例如,如果您的Python解释器是Python 3.x版本,那么您应该使用与之对应的解析器库。
3. 如果您在IDE中尝试运行代码,请确保您的IDE环境配置正确,并且能够访问已安装的解析器库。
4. 如果上述方法仍然无法解决问题,您可以尝试使用其他XML解析库,例如 xml.etree.ElementTree或 lxml.etree。
请尝试以上方法,并检查是否解决了问题。如果仍然有疑问,请提供更多信息以便我们进行进一步的帮助。
球一个最佳答案谢谢啦!这对我非常重要!
|
|