【发布时间】:2018-09-04 16:38:28
【问题描述】:
我有一个问题。我一直在使用 Python 的 Etree 来解析 XML 并对其进行语法检查。我遇到的问题是当它无法解析 XML 时会抛出一个错误,但它不能很好地指出错误最初是在哪里发生的。我意识到我需要的是能够强制执行一条规则,即在 XML 元素的文本中没有“>”(对于我的 XML 目的来说,这是正确且合理的)。有没有办法告诉 Etree 在解析 XML 时这样做?我知道有 libxml,但是如果我要使用 Python 2.75 默认不附带的库,那么我将需要源代码,因为我不允许在我工作的地方安装其他 Python 库。因此,关于在 XML 元素的文本中强制执行 no '>' 的问题的答案,以及关于如何发现 XML 文档中第一次出现错误的行的一些建议;例如忘记关闭 XML 标记中的开头“
【问题讨论】:
-
如果您想使用 XML 工具,您必须编写格式良好的 XML。如果您对选择使用的工具的错误消息不满意,请尝试不同的工具。然而,要意识到一些违反解析规则的原因有很多,解析器通常不会列举所有可能的更正,因为这在一般情况下是不切实际的。
-
考虑使用 CData 包装文本用于此目的。