Jython和xml.sax文件解析器链

2024-10-01 19:19:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我刚刚开始使用Python/Jython和SAX解析器(xml.sax)。我编写了一个简单的内容处理程序作为测试。在

from __future__ import with_statement 

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

class CountingHandler(ContentHandler):

    def __init__(self):
        self.counter = 0

    def startElement(self, name, attrs):
        self.counter += 1

def main(argv=sys.argv):
    parser = make_parser()
    h = CountingHandler()
    parser.setContentHandler(h)
    with open(argv[1], "r") as input:
        parser.parse(input)

当我对某些文档(不是所有文档)运行此操作时,会出现一个错误:

^{pr2}$

当我查看drv_javasax.py的源代码时,似乎输入没有被识别为一个类似文件的对象,事实上是这样。
有什么办法解决这个问题吗?在


Tags: fromimportselfparserinputmakedefwith
2条回答

我想是这个错误:http://bugs.jython.com/issue1488。在Jython 2.5.2-b1中修复:http://www.jython.org/latest.html

当您在with语句后插入print type(input)时,您看到了什么?在

当您恢复到旧式的“try/finally”代码而不是“with”时,它是否适用于所有文件?在

工作的文件和不工作的文件有什么不同?在

如果将名称input更改为不隐藏内置函数的名称,会发生什么情况?在

相关问题 更多 >

    热门问题