我在尝试使用Python的外籍解析XML文件。我有以下线在我的XML文件:

<Action>&lt;fail/&gt;</Action>

外籍识别的开始和结束标签,但转换的&lt;比字符的少,并且在同一比字符的较大值,从而将其解析是这样的:

结果:

START 'Action'
DATA '<'
DATA 'fail/'
DATA '>'
END 'Action'

,而不是所期望的:

START 'Action'
DATA '&lt;fail/&gt;'
END 'Action'

我想有理想的结果,我该如何防止外籍从搞乱?

有帮助吗?

解决方案

外籍不弄乱,&lt;是简单的字符< XML编码。恰恰相反,如果外籍人士将返回字面&lt;,这将是关于XML规范的错误。话虽这么说,你当然可以得到转义版本回用xml.sax.saxutils.escape

>>> from xml.sax.saxutils import escape
>>> escape("<fail/>")
'&lt;fail/&gt;'

Expat解析器也可以自由上报觉得适合任何块的所有字符串数据,所以你必须自己将它们连接起来。

其他提示

SAX和StAX解析器可以自由地打破了弦的任何方式,方便他们(虽然StAX的具有强制其组装件为您COALESCE模式)。

的原因是,它常常是可能写在该流和不必关心重新组装串片段的开销某些情况下的软件。

一般我积累文本中的变量,并使用该内容时,我看到下一个起始元素或结束元素事件。在这一点上,我也复位累积文本变量为空。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top