<p>python IRC页面上的一位绅士使用完美工作的<code>NavigableString</code>帮助实现了以下解决方案:</p>
<pre><code>xml_string="""
<xml>
<codeblock>
<syntax>configure</syntax>
<syntax> context
local</syntax>
<syntax> interface <variable>interface_name</variable></syntax>
<syntax> ip
address <variable>ip_address</variable> <variable>subnet_mask</variable></syntax>
<syntax> exit</syntax>
<syntax> server
ftpd</syntax>
<syntax> ssh
key <variable>data</variable>
length <variable>octets</variable></syntax>
<syntax> ssh
key <variable>data</variable>
length <variable>octets</variable></syntax>
<syntax> ssh
key <variable>data</variable>
length <variable>octets</variable></syntax>
</codeblock>
</xml>
"""
from bs4 import BeautifulSoup
soup = BeautifulSoup(xml_string,"xml")
for syntax in soup.find_all('syntax'):
new_tag = soup.new_tag('syntax')
for child in syntax.contents:
if "\n" in child:
new_tag.append(child.replace("\n", " "))
else:
new_tag.append(child)
syntax.replace_with(new_tag)
print soup
</code></pre>
<p>输出:</p>
^{pr2}$