XPath
よく、以下のように XPath に文字列を埋め込む事があります document.evaluate('//*[@class="' + text + '"]', document, null, 7, null); まあ、僕もよくこんなコード書くんですけど。 でも、これって text が外部から来るものだったら、意図通りの動作をし…
こんな感じ document.evaluate('/html/head/link[contains(concat(" ", @rel, " "), " alternate ") and (@type = "application/x.atom+xml" or @type = "application/atom+xml" or @type = "application/xml" or @type = "text/xml" or @type = "applicatio…
はじめに Pathtraq API を使ってもっといろいろできないかなあと思って、 XPath で指定したリンクに Pathtraq のスコアを付加する JavaScript の関数を作ってみました。 Greasemonkey や Bookmarklet から使うことができます。 たとえば 関数を読み込んだ状…
超要約 JavaScript-XPath 続けてく気あるんかゴルァ! バグの報告はどこにすればいいんじゃゴルァ! ひー! という訳で とりあえず、コミット権が欲しかったら username と password 送ってって言ってみた。 もし、ホントに送ってきたら id:yappo さんに転送…
XPathGraph とは http://xpath.kayac.com/ URL と XPath を指定すると URL の先をスクレイピングしてグラフを作ってくれるサービスです。このエントリでは、どのような手順で XPath を組み立てていけばいいかをよくあるパターンで解説します。 0. 値の元とな…
ちょっとずつできあがってきた http://xpath.kayac.com/user/amachang
以下のエントリで 加減乗除算ができると書きましたが XPathGraph がすごい件と、XPath で出来ることのヒント - IT戦記 現状 XPathGraph では、プラス演算子が無視されるバグがあるようです。 バグの回避方法 XPath では、単項マイナス演算子が使えるので 1 +…
XPathGraph とは http://xpath.kayac.com/ URL と XPath を指定すると一日に一回その URL をスクレイピングして XPath 式が示す値をグラフにしてくれる!という画期的なサービスです。 例えば、 URL と XPath を指定するだけで以下のようなグラフが作れてし…
JavaScript-XPath をバージョンアップしました 久しぶりのバージョンアップです。よろしくお願いします>< JavaScript-XPath とは JavaScript で書かれた XPath の実装です 以下からダウンロードできます。 http://coderepos.org/share/wiki/JavaScript-XPa…
以下のサイトからダウンロードしてお使いください。 Prototype.js 用 http://coderepos.org/share/wiki/JavaScript-XPath/bindings/Prototype jQuery 用 http://coderepos.org/share/wiki/JavaScript-XPath/bindings/jQuery 使いにくいところがあれば すぐに…
マジで嬉しいいい>< http://trac.webkit.org/projects/webkit/changeset/27836 という訳で 引き続き JavaScript-XPath をよろしくお願いいたします!
http://coderepos.org/share/wikiこのように、既存の HTML に手を加えることなく、 JavaScript による機能追加ができます。IE で見てもそれなりに実用的な速度で動いていると思いませんか><(欲をいうともうちょっと最適化したいですが。。) アッピールア…
昨日のエントリのブクマやコメントで jQuery からの移行がめんどう 時代は jQuery のようなコメントがありました。 これらのコメントから おそらく、「XPath が jQuery や YUI、Prototype.js、Dojo、MochiKit などの汎用 JS ライブラリと競合する」と思って…
JavaScript-XPath とは JavaScript-XPath は、 DOM 3 XPath を実装していないブラウザに対して、実用的な速度で動作する DOM 3 XPath のエンジンを追加します。 一言で乱暴に言ってしまえば、どのブラウザでも document.evaluate って関数で XPath 使えるよ…
こんな感じ ここでテストできます(DOM 3 XPath 対応ブラウザでしか動きません) XPath Functional Test テストしてみると Safari 3.0.3 Public Beta はバグが多い Opera と Firefox はかなり優秀 要素名は大文字? あと、特に気になった点として、 name 関数…
すばらしいエントリが上がっています。 で、最近 XPath 処理系の実装が停滞してるんですけど。 飽きたんじゃなくて、Shibuya.JS と WEB+DB PRESS の〆が終わるまで待って><!!
適当に XPath を試したい時に 以下のようにすれば、簡単に XPath をためせます。 document.evaluate( '//div[@class="hoge"]', // XPath 式 document, // 基準となるノード(要素とか null, // 名前空間の解決方法(適当にやるときは null 6, // 取得する形…
ドキュメント順とは何か? ドキュメント順とは、簡単に言えば「XML のソース上の前にある順」のこと。 詳しくはこのへんを見てね。 XPath ではこの「ドキュメント順」という概念がよく登場する。 たとえば、ノードを文字列化するときは子孫テキストノードを…
ふー。XPath パーサが出来ましたよ>< わーい。 昨日中に作ろうとは思っていたけど>< もうすぐ朝の 6:00 か。 もう 18 時間くらいはずっとコード書いてたんだなあ。集中してて時間が過ぎるのが一瞬だったよ。 XPath パーサのデモ http://amachang.art-cod…
またまた XPath ネタです。 先日、XPath の字句解析をワンライナーで作ってみた。 - IT戦記で書いた正規表現の XPath 字句解析ですが、よく考えるといろいろおかしかった(不正な文字が無視されたりする)& id:otsune さんからコメントやブクマの突っ込みも…
またまた パーサーブームの続編です。 昨日は数式のパーサーを作って、帰り道にいろいろ考えたんですけど、普通の言語で考えると構文木って結構複雑になるんじゃないかなあって思いました。 で、横断歩道で明日 XPath の構文木を考えてみようと思ったわけで…
ソースコード var expression = '/html/body/div/[attribute::class="hoge fuga piyo"]'; var tokens = expression.match(/"[^"]*"|'[^']*'|\d+(?:\.\d*)?|\.\d+|\*|\/\/|\/|\||\+|!=|<=|>=|<|>|=|\(|\)|\[|\]|\.\.|\.|@|,|::|-|(?![0-9-:])[\w-]+:\*|\$(?:(…
背景>< Safari 3 系から DOM Level 3 XPath が実装されました!!!キタコレ!!! Firefox 2 系は DOM Level 3 XPath が実装されている。 Opera 9 系は DOM Level 3 XPath が実装されている。 XPath 1.0 in JavaScript • Cameron McCormack's blog (以下…
最近 GreaseMonkey ちょっと使ったりするんだけど $X 関数が便利すぎる!! $Xとは cho45氏が作った XPath 用の関数です。Shibuya.JS で発表してた資料にあります。 http://lowreal.net/2006/shibuya-js-1-lt.html http://lowreal.net/logs/2006/03/16/1 例…