如何在 Python 中读取 ARXML 中的结束标记?
How to read closing tags in ARXML in Python?
我正在使用 Python 和库 xml.etree.ElementTree 解析 ARXML 文件。它读取除独立结束标签以外的所有内容。我需要能够阅读结束标记,因为整个文件中可能散布着注释。我的目标是准确找到这些注释在 ARXML 文件中的位置,因为它们需要复制到另一个转换后的文件中。所以,重要的是我可以确定何时遇到结束标记(以及它后面可能出现的注释),这样我就知道 where 这个注释到底是什么(它是哪个节点里面)。
这是我正在解析的一个很好的例子:
<item>
<name>
</name> <-- Name module ends here -->
</item> <-- Item1 ends here -->
我读到可以通过查看 node.text
是否为 None 来检查某些内容是否为结束标记。如果是,则它是结束标记。但是,此 仅 适用于这种格式的结束标签:<item name="Pizza" />
。自闭标签。
这不适用于仅关闭标签,例如 </item>
、</a>
。
是否也有读取这些结束标记的解决方法或方法?到目前为止,我正在使用 ElementTree 并使用 for child in root.iter()
.
遍历文档的根目录
在构建 DOM 时,结束标记不存在。它们只是序列化工件,而不是 DOM.
的一部分
粗略阅读当前文档,ElementTree 似乎没有在解析时保留注释节点的选项。奇怪的是,您可以通过 API 创建 评论节点,它们将被序列化。但是在解析 XML 时它会丢弃注释。
所以看起来最好的选择可能是 SAX (event-based) 解析,您可以在其中获得每个事件的回调,包括开始和结束标记。这有点复杂,因为构成“事件”的内容并不总是直观的。例如,文本节点可能会呈现为多个单独的事件,您必须自己积累这些事件。 Python 有 xml.sax
模块。
我正在使用 Python 和库 xml.etree.ElementTree 解析 ARXML 文件。它读取除独立结束标签以外的所有内容。我需要能够阅读结束标记,因为整个文件中可能散布着注释。我的目标是准确找到这些注释在 ARXML 文件中的位置,因为它们需要复制到另一个转换后的文件中。所以,重要的是我可以确定何时遇到结束标记(以及它后面可能出现的注释),这样我就知道 where 这个注释到底是什么(它是哪个节点里面)。
这是我正在解析的一个很好的例子:
<item>
<name>
</name> <-- Name module ends here -->
</item> <-- Item1 ends here -->
我读到可以通过查看 node.text
是否为 None 来检查某些内容是否为结束标记。如果是,则它是结束标记。但是,此 仅 适用于这种格式的结束标签:<item name="Pizza" />
。自闭标签。
这不适用于仅关闭标签,例如 </item>
、</a>
。
是否也有读取这些结束标记的解决方法或方法?到目前为止,我正在使用 ElementTree 并使用 for child in root.iter()
.
在构建 DOM 时,结束标记不存在。它们只是序列化工件,而不是 DOM.
的一部分粗略阅读当前文档,ElementTree 似乎没有在解析时保留注释节点的选项。奇怪的是,您可以通过 API 创建 评论节点,它们将被序列化。但是在解析 XML 时它会丢弃注释。
所以看起来最好的选择可能是 SAX (event-based) 解析,您可以在其中获得每个事件的回调,包括开始和结束标记。这有点复杂,因为构成“事件”的内容并不总是直观的。例如,文本节点可能会呈现为多个单独的事件,您必须自己积累这些事件。 Python 有 xml.sax
模块。