LXML转义字符转换

2024-06-07 08:50:01 发布

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

首先,我有一个脚本,它在dos文件格式的XML文件上运行。也就是说,文件有\r\n行终止符。此外,我正在操作的XML文件在某些属性中嵌入了一些新行。生成XML的XML编辑器将这些新行编码为:


我正在使用LXML,我正在做的一些处理将这些文本属性更改为XML元素。我看到的问题是,带有换行符的文本块最终作为元素结束,但在换行符之前有一些积垢。一、 e.
,顺便说一下,它相当于我所理解的
。在

现在,对我来说,这似乎是一个问题,因为我正在执行的脚本是在linux环境中执行的,它会转储一个linux文件格式的文件。在

在我看来,LXML似乎正确地看到了&#xA是一个转义换行符,并将其更改为目标元素中的实际换行符。它似乎忘记了&#xD。在

我创建了一个测试xml文件:

<?xml version='1.0' encoding='UTF-8'?>
<element1>
  <element2 value="0"/>
  <element3 documentation="Some documentation.&#xD;&#xA;&#xD;&#xA;Some more documentation"/>
</element1>

下面是一个示例python文件来执行一些操作:

^{pr2}$

输出如下:

 <element1>
  <element2 value="0"/>
  <element3 documentation="Some documentation.&#13;&#10;&#13;&#10;Some more documentation"><documenation>Some documentation.&#13;
&#13;
Some more documentation</documenation></element3>
</element1>

我想我的问题是,这是你们期望的工作方式吗? 我本以为在documentation元素中,我们将不再有引用。 这似乎有点不雅观,如果我现在必须做一些伟大的这些无关的CR字符。在


Tags: 文件脚本元素linuxmoredocumentationsomexml
1条回答
网友
1楼 · 发布于 2024-06-07 08:50:01

是的,这正是我所期望的。虽然XML处理器需要规范化输入的行尾,但不需要规范输出的行尾。在

如果我站在您的立场上,我会修复生成XML的代码,以避免在属性中放入回车符。否则,我会尝试:

doc.text = elem.get('documentation').replace('\r','')

相关问题 更多 >

    热门问题