不幸的是,往返并不是一个小问题。使用XML,除非您使用特殊的解析器(例如DecentXML,但这是针对Java的),否则通常无法保留原始文档。
根据需要,您可以选择以下选项:
如果您控制源代码并且可以使用单元测试保护代码,则可以编写自己的简单解析器。该解析器不接受XML,而仅接受有限的子集。例如,您可以将整个文档作为一个字符串读取,然后使用Python的字符串操作来查找<dogs>
和替换下一个文档<
。哈克?是。
您可以过滤输出。XML<ns0:
只允许将字符串放在一个位置,因此您可以搜索并替换该字符串<
,然后再使用<group xmlns:ns0="
→进行替换<group xmlns="
。除非您可以在XML中包含CDATA,否则这是非常安全的。
您可以编写自己的简单XML解析器。将输入读取为字符串,然后为每对<>
加上它们在输入中的位置创建元素。这使您可以快速分解输入,但仅适用于小型输入。