私はこの部分的なXMLを持っています
string = '''
<x:root>
<x:tag1 x:anyAttrib="anyValue" x:anyAttrib="anyValue" x:anyAttrib="anyValue" />
<x:tag2 x:anyAttrib="anyValue" x:anyAttrib="anyValue" x:anyAttrib="anyValue">
someValue
</x:tag2>
<x:tag3> someValue
'''
今、私はそれを「ばかげて」修理したいと思います。私は、すべての開始要素と終了要素を再登録する方法を考えました->どの要素が欠落しているかを確認し、それを追加するだけです。もちろん、あまり詳細に立ち入ることはありません。私がこれまでに持ってきたものは(そしてこれは機能しません):
import re
starts = re.compile('(?<=<)x:\w+(?=>)|(?<=<)x:\w+(?! .+ />)')
print(start.findall(string))
私が期待しているのは、x:root、x:tag2、x:tag3のリストです。
私はグーグルしてたくさん試してきましたが、答えを見つけることができませんでした。この式から得られるのは、x:root、x:tag1、x:tag3だけです。
助けてください
ありがとう