LXML,席:包括,和原始FI

2024-03-29 02:32:36 发布

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

< >我使用LXML解析包含席:包含元素的文件,我使用XILL()来解析包含。在

给定一个元素,有没有任何方法可以标识该元素最初出现在的文件和源行中?在

例如:

from lxml import etree
doc = etree.parse('file.xml')
doc.xinclude()
xpath_expression = ...
elt = doc.xpath(xpath_expression)
# Print file name and source line of `elt` location

Tags: 文件方法fromimport元素doclxmlxpath
1条回答
网友
1楼 · 发布于 2024-03-29 02:32:36

xinclude扩展将添加一个xml:基属性到顶层展开元素, 以及elt.基地以及elt.sourceline公司也会针对子节点进行更新,因此:

print elt.base, elt.sourceline

会给你你想要的。

如果elt不是xinclude扩展的一部分,那么elt.基地会指向基地 文档('文件.xml')和elt.sourceline公司将是该文件中的行号。 (请注意,sourceline通常看起来实际上指向element标记所在的行 结束,而不是开始的行,如果元素在多行上,就像 验证错误消息通常指向发生错误的结束标记。)

您可以找到初始的xincluded元素,并使用以下内容进行检查:

^{pr2}$

相关问题 更多 >