要約 RubyでHTMLからTeXへのトランスレータを書いた。 NokogiriのNokogiri::XML::SAX::Documentあたりを使うのが便利そうに感じたが、実際にやるとソースコードが崩壊した。 SAXではなくDOMを用いて階層構造を再帰で辿ったほうがいい。さらにメタプログラミングを用いると割と簡潔な記述にできる。 原因 RubyでのXML操作にはデファクトスタンダードとなりつつあるNokogiri。 HTMLから特定のタグを抽出して……のようなお手軽パースには大変快適なんですが、XMLの全部のタグにアクションを起こすような本格的にパースするとき、すごくやりづらい気がする。そもそもググッてもロクなexampleがでてこない しょうがないので試行錯誤して、まずNokogiriのSAXを使った。 SAXはXMLを「要素の始まり」、「要素の終わり」、「テキスト」の3つにわけ、それ