解析XML文件中的蟒蛇与cElementTree:错误和行号文件在处理
-
12-09-2019 - |
题
我现在用的是cElementTree
库来解析在Python中的XML文件。
一切正常
但是,我想为用户提供充分的错误消息时,在XML的值是不正确的。
例如,让我们假设我有下面的XML:
<A name="xxxx" href="yyyy"/>
和想要告诉用户,如果href
属性不存在或具有值不是在给定的列表中。
有关的那一刻,我有一些像
if elem.get("ref") not in myList:
raise XMLException( elem, "the 'href' attribute is not valid or does not exist")
在我的异常某处捕获。
但是,此外,我想显示的文件中的XML元素的行号。看来,cElementTree
不存储有关树的XML元素的行号的任何信息...: - (
问:有没有能够做到这一点的等价XML库? 或一种方式来访问一个XML元素的XML文件中的位置?
由于
解决方案
这应该使用的等效库是 LXML 。 LXML是非常快速的C的包装库libxml2和和的libxslt通常被认为优于内置的。
有,luckly,试图保持到元素树API和它在lxml.etree延伸。
lxml.etree对所有元素的属性源极线是你是什么东西了。
因此,在该错误消息应该工作以上elem.sourceline
。
不隶属于 StackOverflow