今日、同じ問題に関する質問を投稿しましたが、その解決策はライブラリを切り替えることであり、他のライブラリに問題があるため、別の質問を開くと思います...それでいいと思います.
したがって、次のマークアップと一致させたくありません。
<text link="no">
...
</text>
テキストの中に何があるかは気にしません。そのテキストにはそのリンク属性があります。
私は今、次のようにpyparsingを使用しています:
def content_must_not_be_empty_string(tokens):
if tokens[0]=="":
raise ParseException("content cannot be empty")
text_start = Regex('<text[^<]*>')
text_no_start = Regex('<text[^<]*link="no"[^<]*>')
text_no_end = Regex('</text>[ \t\n\r\xa0]*')
text_no_content = SkipTo(text_no_start | text_no_end | text_start)
text_no_content.setParseAction(content_must_not_be_empty_string)
text_no = nestedExpr(text_no_start,text_no_end,text_no_content)
text_no.setParseAction(somemethod)
最初は空のトークンが原因ですべてがループしたため、content_must_not_be_empty を追加しました。
今はもうループしませんが、何らかのメソッドも実行されません。
助けていただければ幸いです。