CSSセレクタとXPathの判別 ふたたび
CSSセレクタとXPathの判別 - ロックスターになりたいのやつだめだった。
my $test = $exp; $test =~ s/".+?"//g; my $xpath = $test =~ m!/! ? $exp : HTML::Selector::XPath::selector_to_xpath($exp);
これだとxpathが id("next") だけだったりするとCSSだと誤認識されてはまる。
めっちゃアドホックだけど
my $xpath = ( $test =~ m!/! or $exp =~ m/^\s*[\w\-]+\(.+?\)\s*$/ ) ? $exp : HTML::Selector::XPath::selector_to_xpath($exp);
に変えた。関数だったらXPathということで。
あとsnj14先生の
の件も。クオートを省略しないという運用でカバーできるのでいいとおもってます。
@ku xpath/css判別の件,http://tinyurl.com/6du6qh のexampleを見たところ,E[class=t/s]とかもありそうな感じします.実際確認したわけじゃないんですけど一応報告.
厳密にはXPathとCSS selectorを区別することはできないから少しは人間が手間をかけてあげないといけないという立場。