Personal tools
You are here: Home ブログ 井上 XPathとDOM
« December 2010 »
Su Mo Tu We Th Fr Sa
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  
Recent entries
Apache2.4のリリース予定は来年(2011年)初め(あくまで予定) inoue 2010-12-23
Herokuの発音 inoue 2010-12-20
雑誌記事「ソフトウェア・テストPRESS Vol.9」の原稿公開 inoue 2010-12-18
IPA未踏のニュース inoue 2010-12-15
労基法とチキンゲーム inoue 2010-12-06
フロントエンドエンジニア inoue 2010-12-03
ASCII.technologies誌にMapReduceの記事を書きました inoue 2010-11-25
技術評論社パーフェクトシリーズ絶賛発売中 inoue 2010-11-24
雑誌連載「Emacsのトラノマキ」の原稿(part8)公開 inoue 2010-11-22
RESTの当惑 inoue 2010-11-22
「プログラマのためのUXチートシート」を作りました inoue 2010-11-19
「ビューティフルコード」を読みました inoue 2010-11-16
Categories
カテゴリなし
 
Document Actions

XPathとDOM

先日、XPath2.0が出ました。XPathに今さらメジャーバージョンを上げるほどの変更があるのか、と疑問に思い見てみました。

なんだ、このDefinition注釈の嵐は...。Editorsの名前を見ると、IBM、IBM、IBM。

あ、そっか(部室で長門有希を見つけた時の朝比奈みくる風)。

経験的に、XMLを扱うAPIとしては、DOMよりXPathベースの方が扱い易いと感じています。同じことを昔(http://dev.ariel-networks.com/blog/inoue.php?blogid=2&archive=2004-11-27)も書いています。昔書いた視点うんぬんは、今読むとあまり共感できませんが。

探すと、DOMにXPathベースのAPIを取り込む試み(?)はあるようです。

XPath(文字列そのまま、もしくはコンパイルしたオブジェクト)を引数で渡すevaluate()メソッドの戻り値の型がDOMObjectで、その説明が次のようになっています。

Return Value

DOMObject  The result of the evaluation of the XPath expression.
           For XPath 1.0 results, this object will be of type XPathResult.

XPathResultにダウンキャストしろ、と言うのでしょうか。たぶん、JavaScriptの時代なので、ダウンキャストとか考えること自体が時代遅れなのでしょう。

XPathベースの参照結果は、ノードが一意に決まることもあれば、結果がコレクションになることもあります。XPathResultは全てを一緒に扱おうとして、醜悪なものになっています。

素直にDocumentインターフェースにgetElementsByXPath()メソッドを追加して、戻り値の型をNodeListにするのではダメなのでしょうか。NodeListでは間に合わないので、XPathResultを定義したのだと思いますが、いまいち納得できません。

getElementsByXPath()の追加は、APIの直交性の観点からは感心できません。この文脈での「直交性」の意味は、既存のメソッドの組合せで可能な操作は新しいメソッドとして追加すべきではない、という主張です。XPathベースでノード(コレクション)を取得する操作は、既存のDOMのAPIを組み合わせることで実現可能です。なので、同じレイヤに新しいメソッドとして追加するのは違和感があります。ただ、ぼくは美しくないと文句は言いますが、否定はしません。文句が多いので原理主義者と誤解される時がありますが、プログラミングに関しては、ぼくはどちらかと言えば現実主義者です。

XPathベースのノード生成APIもあると便利です(経験則)。createElementByXPath()のようなメソッドです。

The URL to Trackback this entry is:
http://dev.ariel-networks.com/Members/inoue/xpath-and-dom/tbping

Re:XPathとDOM

Posted by Anonymous User at 2007-02-22 01:25
> あ、そっか(部室で長門有希を見つけた時の朝比奈みくる風)。

?

Re:XPathとDOM

Posted by よう at 2007-02-22 09:47
もともと美しいと感じたことがないから、どうでもいいと思ってしまいます。
DOMにXPathベースのAPIを取り込むより、XPathベースの別のAPIがあった方がよっぽどいいと思います。

Re:XPathとDOM

Posted by inoue at 2007-02-26 11:31
言語中立という幻想をあっさり切り捨てると、E4X(ECMAScript for XML)のようになるのかもしれません。
Add comment

You can add a comment by filling out the form below. Plain text formatting.

(Required)
(Required)
(Required)
This helps us prevent automated spamming.
Captcha Image


Copyright(C) 2001 - 2006 Ariel Networks, Inc. All rights reserved.