Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/306.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.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文件中删除注释_Python_Xml_File_Parsing_Comments - Fatal编程技术网

使用Python从xml文件中删除注释

使用Python从xml文件中删除注释,python,xml,file,parsing,comments,Python,Xml,File,Parsing,Comments,我想从xml文件中删除注释 strng = os.path.join(input_dir, country_file) with open(strng, 'r') as infile: data = infile.read() data = data.replace("<!-- %", "") data = data.replace("UNICEF_INTERNAL_ELEMENT", "")

我想从xml文件中删除注释

strng = os.path.join(input_dir, country_file)
        with open(strng, 'r') as infile:
            data = infile.read()
            data = data.replace("<!-- %", "")
            data = data.replace("UNICEF_INTERNAL_ELEMENT", "")
            data = data.replace("% <", "<")
            data = data.replace("-->", "")
            infile.close( )
        with open(strng, 'w') as infile:
            infile.write(data)
            infile.close( )
strng=os.path.join(输入目录,国家/地区文件)
以开放式(strng,'r')作为填充:
data=infle.read()
数据=数据。替换(“,”)
填充关闭()
以开放式(strng,'w')作为填充:
填充写入(数据)
填充关闭()
我可以从文件中删除注释。但当我在代码中进一步尝试使用xml.etree的findall()方法时,它会给出错误,最后一行是
文件“/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/re.py”,第155行,子文件 return\u compile(模式、标志).sub(repl、字符串、计数) TypeError:应为字符串或缓冲区

注释标记看起来像

因此,我必须删除
,这是我能够做到的,但接下来的代码无法正确读取xml的原因。

还有一点是,注释中的xml部分是有效的xml,但格式不好。所有嵌套的标记都在一行中。

您可以发布处理eTree使用的代码部分吗?这与您遇到的错误无关,但是使用
with
块意味着您不必执行文件
关闭()
-对于任何
打开()
ed with
with
self.provider=names.alias(transaction_xml.findall(“provider org/叙事”)[0].text)这是代码。事务xml包含来自其他模块的xml树