Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python XML解析-^H字符/符号?_Python_Xml_String_Parsing - Fatal编程技术网

Python XML解析-^H字符/符号?

Python XML解析-^H字符/符号?,python,xml,string,parsing,Python,Xml,String,Parsing,我在清理一些XML以便用Python和etree解析它时遇到了一段非常糟糕的时间。基本上,在我的Python脚本读取它之前,我正在尝试转义每个字符串条目中提供给我的所有特殊字符 'xml.parsers.expat.ExpatError: not well-formed' 因此,在生成XML字符串条目时,我使用sed将特殊字符替换为它们的转义版本,或者仅使用空格,而我真的不在乎 但现在在生成的XML中,我看到了一个^H字符,vim将其高亮显示为蓝色 我尝试转义^,但没有成功,角色仍然存在,因此

我在清理一些XML以便用Python和etree解析它时遇到了一段非常糟糕的时间。基本上,在我的Python脚本读取它之前,我正在尝试转义每个字符串条目中提供给我的所有特殊字符

'xml.parsers.expat.ExpatError: not well-formed'
因此,在生成XML字符串条目时,我使用
sed
将特殊字符替换为它们的转义版本,或者仅使用
空格
,而我真的不在乎

但现在在生成的XML中,我看到了一个
^H
字符,vim将其高亮显示为蓝色

我尝试转义
^
,但没有成功,角色仍然存在,因此我认为它一定是某种复合特殊角色


唉,为什么这么糟糕。无论如何,感谢您的帮助。

^H
是表示嵌入文本中的退格字符(ASCII字符8)的常用方法;如果您已经在使用
sed
/
bash
进行过滤,则可以执行以下操作:

cat infile | sed s/$'\b'// > outfile

尽管如此,我还是不认为你的输入文件中有一个^H是件好事。。。您是如何生成它的?

首先,您是如何将退格字符放入XML的?它可能是退格字符(ASCII 8或Control-H)。如果不知道你正在做什么样的清理,或者没有看到一些文件,就很难确定。老实说。。我只是从一些项目目录中读取日志文件。你能帮我解释一下你的解决方案吗?我不熟悉sed/bash的东西。@YoungMoney:我简化/更正了代码,现在应该很简单了(
$'\b'
就是用bash的方式输入你的
^H
)。还有一个问题要确定-所以我可以用这个来修改一个文件,即
infle
outfile
相同吗?编辑-因为我试过了,现在我有了一个空文件…@YoungMoney:no
sed
读取文件(或stdin)并输出到stdout;流重定向操作符(
)会在启动管道之前截断文件,因此最终会得到一个空文件。您必须在
sed
完成后输出到临时文件并覆盖原始文件。