Jér*_*eot 7 python xml lxml beautifulsoup special-characters
我需要在一个丑陋的XML文件中转义特殊字符(5000行左右).这是我必须处理的XML的一个例子:
<root>
<element>
<name>name & surname</name>
<mail>name@name.org</mail>
</element>
</root>
Run Code Online (Sandbox Code Playgroud)
这里的问题是名称中的字符"&".你会如何使用Python库来逃避这样的特殊字符?我没有找到使用 BeautifulSoup的方法.
如果您不关心xml中的无效字符,可以使用XML解析器recover
选项(请参阅使用lxml.etree.iterparse解析损坏的XML):
from lxml import etree
parser = etree.XMLParser(recover=True) # recover from bad characters.
root = etree.fromstring(broken_xml, parser=parser)
print etree.tostring(root)
Run Code Online (Sandbox Code Playgroud)
<root>
<element>
<name>name surname</name>
<mail>name@name.org</mail>
</element>
</root>
Run Code Online (Sandbox Code Playgroud)