0

我有以下文字:

xml = '''
<accessibility_info>
    <accessibility role="captions" available="true" />
</accessibility_info>
<crew_member billing="top"
    <display_name>John Viscount</display_name>
</crew_member>
<products>
    <territory>GB</territory>
</products>'''

我需要删除以下<crew_member>块。这就是我目前正在做的事情:

clean_xml = re.sub('<crew_member>.*</crew_member>', '', metadata_contents, 
                    flags=re.DOTALL)

但是,它还添加了一个换行符:

<accessibility_info>
    <accessibility role="captions" available="true" />
</accessibility_info>

<products>
    <territory>GB</territory>
</products>

我将如何更改正则表达式以去除换行符,所以它看起来像:

<accessibility_info>
    <accessibility role="captions" available="true" />
</accessibility_info>
<products>
    <territory>GB</territory>
</products>'
4

2 回答 2

2

试试这个

print re.sub('<crew_member([^\>]*)>.*</crew_member>\n', '', xml, flags=re.DOTALL)

于 2013-01-11T22:36:09.077 回答
0

我知道这有点旧,但我想说新行实际上来自用于将新文本写入文件的方法。如果我使用print()添加新行,但如果我使用例如sys.stdout.write(),则不会添加新行。

于 2017-05-01T13:03:12.437 回答