E4Xは確かに便利なんだけど...

FirefoxのE4XはXPathより便利? - bits and bytesE4XXPath並に強力だよっていう記事があるけど...。
どうしても違和感がある。
E4XをつかってXPathのような使い方をする場面がイマイチ思い浮かべられないのだ。
XPathなら現在のDOMやXMLHttpRequestのresponseXMLから特定の要素を引っ張ってくるというのが主な使い道だと思うが、この用途にE4Xを使うのはちょっと考えがたい。
現在のDOMからxmlオブジェクトを生成するのはちょいと面倒で、XMLSerializer*1なんかを使ってわざわざDOMをテキスト化しないといけない*2
XMLHttpRequestのresponseTextからxmlオブジェクトを生成するのは簡単だが、そんなことするくらいならresponseXMLで最初からDOMDocumentを得たほうが手っ取り早いし、evaluateから得られるノードをなじみのあるDOM APIを使う方がやり易いだろう。
E4Xの使い方は、やはり、コード中でXML構造を生成するほうだろう。appendChild,createElement,setAttributeをちまちまとDOM APIを使ってやったり、テキストを生成するコードより、E4Xの方が可読性が高く柔軟性がある(タグの閉じ忘れもないしね)。
自ら生成するXMLに余分なデータを入れて、それをXPath的にフィルタリングする、というのはちょっと考えにくい。データストア的に使うのであれば普通のオブジェクトを使った方が扱いが楽だと思うのだ。

そんなことをウダウダと考えたわけで、同じような使い方をする場面がどうしても思い浮かべられないんだ。

*1:参照:http://d.hatena.ne.jp/teramako/20061229/p1

*2:さらにXMLSerializerでHTMLをテキスト化するとタグ名が大文字なり、これをDOMParserでパースしてもおそらくHTMLElementにならない罠