HTML_CSS_Selector2XPath vs Zend_Dom_Query_Css2Xpath

openpearにてHTML_CSS_Selector2XPathがリリースされました。
http://openpear.org/package/HTML_CSS_Selector2XPath

selector2XPath自体はyudoufuさん作で前からありましたが、
(ていうか、今「selector2XPath php」で検索したら他のも見つかったよ。。)
MugeSoさんのほうで追加されたテストコードは目をみはるものがあります。
http://openpear.org/repository/HTML_CSS_Selector2XPath/trunk/tests/Selector2XPathTest.php


さて、ZFには似たような”css selector to xpath”として、
Zend_Dom_Query_Css2Xpathがあります。もちろんZFだからテストコードもあります。
http://framework.zend.com/code/browse/Standard_Library/standard/trunk/tests/Zend/Dom/Query/Css2XpathTest.php?r=trunk


さて両者は、同じ変換機能を目指すライブラリのはずです。
テストコードを両者入れ替えたらどうなるか試してみました。


(1)ZFのテストコードをHTML_CSS_Selector2XPathに適用
http://gist.github.com/95222
(2)HTML_CSS_Selector2XPathのテストコードをZFに適用
http://gist.github.com/95208


結果は、
(1)ZFのテストコードをHTML_CSS_Selector2XPathで実行
http://gist.github.com/95271
けっこう期待値と違うものがでてしまうものが出てしまいました。しかし上記の場合、
変換への期待値の解釈方法による違いがおもだと思います。


では次に
(2)HTML_CSS_Selector2XPathのテストコードをZFで実行
http://gist.github.com/95274

(;゚Д゚)

(゚Д゚;)

(;つД⊂)ゴシゴシ


(゚Д゚)は?


「got string
ってスラッシュ山盛りってなんじゃああ。







ていうのがかなり昔からおもっておりまして、
Diggin_Scraper_Strategy_Flexibleのcssからxpath変換では補正を加えています。
http://code.google.com/p/diggin/source/browse/trunk/library/Diggin/Scraper/Strategy/Flexible.php#98
(chr(32)のstr_replaceは余計だったかもしれない。。。)
*ちなみに、css変換のとこだけとっかえるなら

http://gist.github.com/95233
でOKかと思われます。


とりわけ

php -r 'require_once "Zend/Dom/Query/Css2Xpath.php"; echo Zend_Dom_Query_Css2Xpath::transform("E ~ F");';

結果
「//E//~//F」
となるのはそもそもZend_Dom_Query_Css2XpathがどのCSSセレクターに対応してるのかわからないので当方判断つきません。。。。。。。。