<p><a href="http://www.crummy.com/software/BeautifulSoup/" rel="noreferrer">BeautifulSoup</a>本身不是一个DOM库(它没有实现domapi)。为了使事情更复杂,您在xml片段中使用了名称空间。要解析特定的XML片段,可以使用BeautifulSoup,如下所示:</p>
<pre><code>from BeautifulSoup import BeautifulSoup
xml = """<xml>
<web:Web>
<web:Total>4000</web:Total>
<web:Offset>0</web:Offset>
</web:Web>
</xml>"""
doc = BeautifulSoup( xml )
print doc.find( 'web:total' ).string
print doc.find( 'web:offset' ).string
</code></pre>
<p>如果不使用名称空间,代码可能如下所示:</p>
<pre><code>from BeautifulSoup import BeautifulSoup
xml = """<xml>
<Web>
<Total>4000</Total>
<Offset>0</Offset>
</Web>
</xml>"""
doc = BeautifulSoup( xml )
print doc.xml.web.total.string
print doc.xml.web.offset.string
</code></pre>
<p>这里的关键是BeautifulSoup对名称空间一无所知。因此<code>web:Web</code>被视为<code>web:web</code>标记,而不是属于<code>web</code>名称空间的<code>Web</code>标记。虽然BeautifulSoup将<code>web:web</code>添加到xml元素字典中,但python语法无法将<code>web:web</code>识别为单个标识符。</p>
<p>您可以通过阅读<a href="http://www.crummy.com/software/BeautifulSoup/documentation.html" rel="noreferrer">documentation</a>来了解更多信息。</p>