python - 我能以某种方式告诉 SAX 解析器在某个元素处停止并将其子节点作为字符串获取吗?

标签 python xml sax saxparser

我有相当大的 XML 文档,所以我不想使用 DOM,但是在使用 SAX 解析器解析文档时,我想在某个点停下来(比如当我到达具有特定名称的元素时)并获取所有内容在该元素内作为字符串。 “Everything”里面不一定是文本节点,它可能包含标签,但我不想让我解析它们,我只想将它们作为文本获取。

我正在用 Python 编写。有可能解决吗?谢谢!

最佳答案

xml.sax API 似乎没有提供它,但您可以使用另一种中断控制流的方法:异常。

只需为此目的定义一个自定义异常:

class FinishedParsing(Exception):
    pass

当您完成解析并忽略它时,在您的处理程序中引发此异常。

try:
    parser.parse(xml)
except FinishedParsing:
    pass

关于python - 我能以某种方式告诉 SAX 解析器在某个元素处停止并将其子节点作为字符串获取吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8744604/

相关文章:

python - 使用 difflib SequenceMatcher 比率在 Pandas 中合并

python - 如何修复 ipython 安装 "Operation not permitted"错误?

python - 将字符串分割成连续、重叠的单词列表的最Pythonic方法是什么

全屏背景上的android xml可绘制图像

python - 如何知道服务器是否关闭python请求模块中的连接

php - 如何从 XML 文档获取值

python - 使用 TastyPie 自定义输出 XML(带有属性)?

java - Android saxparser CDATA 无知

java - SAX 处理程序的 startElement 回调中的属性中不存在 xmlns 属性

java - 如何获取以下 sibling 的编号和姓名