擅长:python、mysql、java
<p>问题是expat使用<code>fb</code>作为名称空间前缀,但该标记是<code>FB:LOGIN-BUTTON</code>。Expat将<code>FB</code>视为未绑定。XHTML规范指出,由于XML,所有的HTML元素和属性<a href="http://www.w3.org/TR/xhtml1/#h-4.2" rel="nofollow">must be lowercase</a>都区分大小写。在</p>
<p>我尝试了使用<a href="http://lxml.de/" rel="nofollow">lxml XML parser</a>的文档,它自动将前缀转换为小写。也许您可以切换到另一个解析器:</p>
<pre><code>import lxml.etree
data = open('fb.xhtml', 'rb').read()
tree = lxml.etree.fromstring(data)
ns_map = {'fb': 'http://www.facebook.com/2008/fbml'}
print tree.xpath('.//fb:LOGIN-BUTTON', namespaces=ns_map)
</code></pre>
<p>输出:</p>
^{pr2}$