lxml
でこれを達成する方法を次に示します。 lxml.etree
tutorialから
>>> from lxml.etree import fromstring
>>> tree = fromstring('''<section> Fubar, I'm so fubar, fubar and even more <fref bar="baz">fubare</fref>. And yet more fubar. </section>''')
>>> elem = tree.xpath('/section/fref')[0]
>>> elem.text
'fubare'
>>> elem.tail
'. And yet more fubar. '
>>> elem.getparent().text
" Fubar, I'm so fubar, fubar and even more "
:
あなたが任意の中間タグなしすなわちテキストのみを、読みたい場合は、再帰的にすべてのテキストと尾を連結する必要が は 正しい順序で属性。ここでも、のtoString()関数はメソッドのキーワードを使用して救助、 にこの時間が来る:
>>> from lxml.etree import tostring
>>> tostring(html, method="text")
" Fubar, I'm so fubar, fubar and even more fubare. And yet more fubar. "
これを行うためのXPathの方法もあります、それは、リンク先のページで説明しています。
達成しようとしていることは何ですか?タグを取り除き、すべてのテキストを残しますか? – MattH
私は実際にそのことを解析する必要があります。これは、テキストを中断することなく、インラインで置き換えられるHTMLのaタグのようなものです。子要素*と*テキスト要素を同時に繰り返し、順序を保持する必要があると思います。だから "Fubar、I'm so fubar ...."が処理され、その後fref-tag、その後のテキストが処理されます。 – dom0