Es gibt viele Beispiele zum Entfernen von HTML-Tags aus einem Dokument mit Ruby, Hpricot und Nokogiri haben inner_text Methoden, die alle HTML für Sie einfach und schnell entfernen.Streifen Text aus HTML-Dokument mit Ruby
Was ich versuche, ist das Gegenteil, entfernen Sie den gesamten Text aus einem HTML-Dokument, nur die Tags und ihre Attribute zu verlassen.
Ich überlegte, die Dokumenteinstellung inner_html durchzugehen bis nil, aber dann müssten Sie das umgekehrt tun, da das erste Element (root) einen inneren_html des gesamten restlichen Dokuments hat, also hätte ich es idealerweise Beginne beim innersten Element und setze inner_html auf Null, während du dich durch die Vorfahren bewegst.
Kennt jemand einen netten kleinen Trick, um dies effizient zu tun? Ich dachte, dass Regex es vielleicht tun könnte, aber wahrscheinlich nicht so effizient wie ein HTML-Tokenizer/Parser.
Sie werden mit schlechtem Markup umgehen müssen? (unescaped entities, etc.) – Neall
Es ist möglich - das Markup, das ich verarbeite, kommt von Endbenutzern, daher kann man sich nicht darauf verlassen. – davidsmalley