タグ

XPathに関するos0xのブックマーク (32)

  • Excellent XPath Expressions - nanto_vi

    Excellent XPath Expressions nanto_vi (TOYAMA Nao), 2010-06-05, 2010-09-26 追補 XPath で何ができるか 文書中のノードの選択 文書: XML 文書、HTML 文書 ノード: 文書ノード (ルートノード)、要素ノード、属性ノード、テキストノード、コメントノード、etc. cf. CSS セレクタ: 要素の選択 文書を元にした文字列、数値、真偽値の生成 図 1 に HTML 文書が生成する文書木 (文書ツリー) の例を挙げます。図中、二重線で囲んだのが文書ノード、角丸四角が要素ノード、長方形がテキストノードを表します。 文書木の根 (最上部) は文書要素ノード (ルート要素ノード、HTML 文書なら html 要素ノード) ではなく、文書ノードであることに注意してください。JavaScript から DOM や XP

    os0x
    os0x 2010/09/27
  • XPath に文字列を埋め込むときの注意 - IT戦記

    よく、以下のように XPath に文字列を埋め込む事があります document.evaluate('//*[@class="' + text + '"]', document, null, 7, null); まあ、僕もよくこんなコード書くんですけど。 でも、これって text が外部から来るものだったら、意図通りの動作をしないんですよね たとえば、以下のような例です。 var text = '"] | /hoge/fuga/piyo | .["'; document.evaluate('//*[@class="' + text + '"]', document, null, 7, null); というわけで 任意の文字列を XPath の式に変換する JavaScript を書いてみた 以下で試せます http://amachang.sakura.ne.jp/misc/xpath_es

    XPath に文字列を埋め込むときの注意 - IT戦記
    os0x
    os0x 2009/09/17
    $x('//text()[contains(self::text(),"' + text.replace(/"/g,'\\$&') + '")]') こうしてる/id:amachang なるほど! 確かに←はダメダメだった…
  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
    os0x
    os0x 2009/06/02
  • XPathからセレクタへの移植は簡単なお仕事です - 2009-04-27 - fublog

    みんなセレクタ登録しようぜ!って書いたのに1件も増えてなかったので現状fub専用のDBなんて俺しかメンテしないんだったらこりゃダメだな、と思ったんだけど更新履歴見たら試行錯誤してた人が1人いたので少し希望があった。 セレクタ書き方講座みたいの書いたら少しは増えるだろうか。MSN産経ニュースは俺が書いちゃったけど。 ステータスバーのアイコンダブルクリッコでuser.jsを無効にすると以後有効にしてもスクリプトエラーになってたので、一応exeだけ差し替えておきました。 http://madchester.s54.xrea.com/archives/test.zip あとユーザースタイルシートの効きが悪い件は認識済みなのですが、IE8のバグだと思うのでちょっと保留中です。(以前のよく効く方式だと全く適用されずに違う方法で適用してます) 最終的に捨てるかもしんないしあれだけど、頭の体操だと思って1

    XPathからセレクタへの移植は簡単なお仕事です - 2009-04-27 - fublog
  • Kanasan.JS Greasemonkey チュートリアル読書会: Days on the Moon

    ちょうど 1 ヶ月前、2 月 22 日に開催された Kanasan.JS Greasemonkey チュートリアル読書会 (参加者ブログ一覧) に私も参加していました。時間がたちすぎて自分のメモからも情報を読み出せなくなりかけているのですが、何とかここに再現してまとめたいと思います。全体のまとめは「Firebugで作るGreasemonkeyスクリプト~入門と実践(From Kanasan.JS) | Blog.37to.net」に詳しいので、自分の気になった点に関してだけです。 HTML の解析 Greasemonkey スクリプトを書くには対象サイトの HTML を解析する必要があります。多くの人は Firebug を使っているようですが、私が使っているのは DOM Inspector です。これは単に昔から DOM Inspector を使っていたという慣れの問題ですが、一応 Fir

  • HTML と XHTML で同じ XPath を使う: Days on the Moon

    通常、XPath を書くときは //p のようにすることが多いと思いますが、これには名前空間の指定が含まれていないため、XHTML 文書 (MIME タイプが application/xhtml+xml で提供されている文書) では使えません。これに対するアプローチとしては、//h:p のようにあらかじめ XPath 式に名前空間の指定を含めておき、リゾルバによる名前空間接頭辞の解決時に HTML と XHTML とで処理を分けるというのが一般的でした。「XPathNSResolver のクロスブラウザとか」や「document.contentType == "application/xhtml+xml"なページでの$X」で扱っている方法です。 とはいえ、いちいち名前空間接頭辞を指定するのは面倒くさいですし、同じ名前空間に対する接頭辞が人によって違うのも不便です。XPath 式の中で要素名

  • XPathの"@checked"と CSS2の":checked", setAttribute()は控えめに。 - latest log

    CSS2の擬似クラスセレクタに、":checked" というものがあります。 <input type="radio" checked="checked" /> や <input type="checkbox" checked="checked" /> などがヒットします。 何も知らないから XPath で表現してみたかった。 uupaa.jsは、CSSセレクタ(Level1〜3 + jQuery独自のやつ)を、内部でXPathに変換しています。 最近は、XPathスキーなので、":checked" を '//input[@checked and @checked="checked"]' として実装してみました…が、なんか、ちゃんと動かないんです。 不思議なことに動くブラウザもあるし、どうやら状況依存な気配も感じます。 何で? 結論としては、XPathのchecked属性("@checked

    XPathの"@checked"と CSS2の":checked", setAttribute()は控えめに。 - latest log
    os0x
    os0x 2008/06/20
  • Firebug1.2alpha向け $xでコンテキストを指定できるようにするためのuserchrome.jsスクリプト - bits and bytes

    Firebugの最新情報が追えるFirebug | Google グループを見ていると、Firefox3beta4くらいから最新版のFirefoxでうまく動くようにするのに手間取っているようで(先日紹介した$$1は1.2alphaでは使えなくなくなっちゃいました)ちょっと心配してたのですが、Firebugのコンソールがぜんぜん機能しないという大きな問題は乗り越えたみたいです。 ちなみにこのグループ、こないだhow to remove a cockroach from the right corner of browser? - Firebug | Google グループなんてアホな投稿(投稿した人はまじめにアイコンを変えたかったみたいですけど)が流れてきておもしろかったです。 $xにコンテキストを指定できるようにする Firebug純正のXPathを評価するコマンド$xは、DOM要素のリス

  • wedata対応バージョンのSITEINFO作成用Firefox拡張機能 AutoPagerize Iteration Detector - bits and bytes

    wedata対応バージョンのSITEINFO作成用Firefox拡張機能 AutoPagerize Iteration Detector HTMLのドキュメントから繰り返し部分をみつけてSITEINFOをつくるAutoPagerize Iteration Detectorをwedataに対応させました。AutoPagerize Iteration Detectorで作ったSITEINFOを直接wedataに反映させられるようになっています。 インストール iterd.xpi(supports Firefox 2.0-3.0.0.*) つかいかた 使い方はwedataに接続する部分以外以前のバージョンとかわっていませんが、ざっと紹介します。 次のページへのリンクを右クリックする SITEINFOを作りたいページを開いて、ページの中にある次のページへのリンクを右クリックします。メニューの中に

  • はてなブログ | 無料ブログを作成しよう

    ネイルで使う材料で、DIY時の木割れやネジ跡を派手にしたらかわいい OSB合板でちょっとしたボックスをつくりました。 ビス止め下手すぎて木を割ったり穴あけすぎたりした場所に、好きな派手色の樹脂を詰めてパテ代わりにしてみました。 ちょっと某HAYっぽみ出て可愛かったので、自分用にメモです。 手順 塗装 派手色グミジェルで失敗部分…

    はてなブログ | 無料ブログを作成しよう
    os0x
    os0x 2008/04/16
  • XML::XPathEngineパッチ - ロックスターになりたい

    パッチ作った。 descendantとdescendant-or-selfで出てくる順番がおかしかったのを修正 (id("1")//*)[1]/@att2 みたいにグルーピングしてるのの中にidがあって外側が@attrなときに実行時例外(Can't locate object method "getElementById" via package "XML::XPathEngine::NodeSet")が出るのの修正 amachangのテストコードはpiを除いて通るようになったけどamachangのテストコードはかっこをつかってるやつが少なくてそのへんでまだ問題が残ってる雰囲気が濃厚だった。 (id("1")//*)[1]/@att2 はいけるんだけど (.//*)[1]/@att2 にすると例外が出た気がする(axis axis_descendant not implemented [C

    XML::XPathEngineパッチ - ロックスターになりたい
    os0x
    os0x 2008/04/15
  • XPathGraph がすごい件と、XPath で出来ることのヒント - IT戦記

    XPathGraph とは http://xpath.kayac.com/ URL と XPath を指定すると一日に一回その URL をスクレイピングして XPath 式が示す値をグラフにしてくれる!という画期的なサービスです。 例えば、 URL と XPath を指定するだけで以下のようなグラフが作れてしまいます。 当に楽しいことが出来そうでワクワクしてます! でも まだ XPath を登録している人が意外と少ないので、「ひょっとして、このサービスの使いどころが分からないのかなあ。」と思いました。 というわけで XPath で出来ることのヒントを少し紹介したいと思います。 足し算、引き算、かけ算、割り算 XPath では普通に数値の演算ができます。 たとえば、 //div[@class=counter] で取得してきた div 要素が 1000 という数値を持っていたとすると 2 *

    XPathGraph がすごい件と、XPath で出来ることのヒント - IT戦記
    os0x
    os0x 2008/04/11
  • XPath test #2 - ロックスターになりたい

    os0x
    os0x 2008/04/11
  • MDC

    Message will close by itself in seconds Message timer has been stopped

    os0x
    os0x 2008/04/10
  • siteinfo writing

    SITEINFOの書き方入門 SITEINFOは次のページへのリンクがどれかを示すnextLinkと、ページの中の文部分を示すpageElementとでできています。 nextLinkは複数にマッチするXPathでも大丈夫です。複数の要素にマッチするときは、一番はじめにマッチしたものが使われます。よくページの上部と下部に同じナビゲーションが入っているページがありますが、そのときも片方だけの次のページへのリンクにマッチするようにXpathを書かなくてもAutoPagerizeがマッチしたものの中で一番はじめのものを使ってくれます。(実装はそうなってるけど仕様としてどうなのかは知らない) AutoPagerizeのSITEINFOと同様な仕組みはLDRizeやLDR Full Entryでも用いられているので、書けるようになると他のところでも役に立ちますよ。他にもまじめにXSLTでバリバリ使

  • js snippets of the day - ロックスターになりたい

    attributeの前にエレメントを選ばないとだめだと思ってたけど//@attributeでとれるのを知った。 copy($x("//div[@class='subsection' and .//img[@alt='del.icio.us']]//@servicename").map( function (n) n.nodeValue.quote() ).join(", "))

    js snippets of the day - ロックスターになりたい
    os0x
    os0x 2008/04/02
    ほー、ElementじゃなくてAttrが取れるのね。
  • 【インフォシーク】Infoseek : 楽天が運営するポータルサイト

    日頃より楽天のサービスをご利用いただきましてありがとうございます。 サービスをご利用いただいておりますところ大変申し訳ございませんが、現在、緊急メンテナンスを行わせていただいております。 お客様には、緊急のメンテナンスにより、ご迷惑をおかけしており、誠に申し訳ございません。 メンテナンスが終了次第、サービスを復旧いたしますので、 今しばらくお待ちいただけますよう、お願い申し上げます。

    os0x
    os0x 2008/03/13
    便利そう。 // は /descendant-or-self::node()/ かな。"完全な"構文は難しそう。http://www.infoteria.com/jp/contents/xml-data/REC-xpath-19991116-jpn.htm#path-abbrev /コメントしといた
  • AutoPagerize pageElement ここよりもあとでここより前、みたいなのが書きたいとき - ロックスターになりたい

    ここより後、はfollowing-sibling::node()ですぐ書ける。 ここより前まで、の"ここ"がはじまり部分のsiblingじゃなくてその子孫だったりすることがある。(祖先の兄弟だったりもすることもあるけど、それはかんがえてないけどできるんじゃないかなたぶん) パフォーマンスよくないけど、絶対的な値だとたいした時間じゃないと思う。 following-sibling::node()[ ./following-sibling::*/descendant-or-self::kokomade ]でいまのところよりもあとで、そいつよりも後に"ここまで"の部分が含まれてるノード、つまり"ここまで"のノードよりも前にあるノードだけとれる。 infogamiのwikiにSITEINFOのnextLinkケーススタディ - 0x集積蔵とか、書き方のこつみたいなのまとめといたらどうだろう。 ##

    AutoPagerize pageElement ここよりもあとでここより前、みたいなのが書きたいとき - ロックスターになりたい
    os0x
    os0x 2008/03/07
  • XPathについての概略 - 久幸繙文

    この記事の概要 記事はXML言語の一つ「XPath1.0」の仕様に関する概略である。主に軸方向(Axis)と関数の定義をXPath仕様書の邦訳から要約、加筆した。 記事はXML及びXPathについて一定の理解のある者を対象としており、初めてXPathを学習する方は別の解説記事を参照されたい。 XPathの概要 XPath は、XML ドキュメントの一部をアドレッシングするための言語であり、XSLT および XPointer で使用するように設計されている。 XPathは、マーク付け言語において要素を特定する手段の一つである。アドレス形式で記述し、基的な記法は軸方向::名前空間:ノードテスト[述語]/~~となる。これをロケーションパスと言い、"/"で区切られた一つの記述をロケーションステップと呼ぶ。 ロケーションパスは、"/"で始まるものを絶対パス、始まらないものを相対パスとして展開す

    os0x
    os0x 2008/02/26
  • The art of AutoPagerize nextLink XPath writing � ZeroMemory

    SITEINFOのnextLinkケーススタディ - 0x集積蔵を読んで自分が書いたのを思い出したら、これを公開したつもりで公開してませんでした… os0xさんの書かれた記事のほうが網羅的なので、あちらを読んでもらえばよいですが、兄弟要素から取得するケースでnumberでaの中の数字を利用することができるときもある、というのだけいいたいので公開しておきます。 AutoPagerizeのSITEINFOを書いていると、ナビゲージョン部分のHTMLがださくてnextLinkをXPathで表現できなさそうなことがよくあります。 が、ふたつほどコツを見つけたのでご紹介。 following-sibling, descendant-or-selfを使う ありがちなのがナビゲーションに次のページへのリンクがなくて、数字だけが並んでいて今いるページだけハイライトされてるタイプのやつです。 Behanc

    os0x
    os0x 2008/02/15