2017-05-07 10 views
1

を "守る" 私はXMLを解析するためにBeautifulSoupを使用しています:はBeautifulSoupの名誉XMLを作成します:スペース=

In [64]: b = bs4.BeautifulSoup('<xml><t xml:space="preserve">  </t><t xml:space="preserve"> A </t></xml>', 'xml') 
In [65]: b.find_all('t') 
Out[65]: [<t xml:space="preserve"> </t>, <t xml:space="preserve"> A </t>] 

その結果、5つのスペースがxml:space="preserve"属性にもかかわらず、最初のtタグで1にまとめています。

BeautifulSoupをxml:space="preserve"と尊重し、スペースを崩壊させない方法はありますか?

答えて

2

BeautifulSoupに関する直接の回答はありません。しかし、lxmlがこれを行うことができます。

>>> from lxml import etree 
>>> tree = etree.fromstring('<xml><t xml:space="preserve">  </t><t xml:space="preserve"> A </t></xml>') 
>>> [_.text for _ in tree.findall('t')] 
['  ', ' A '] 
関連する問題