Firefox 3.6 にしたら、動的に生成した文書からの XPath による要素取得ができなくなったという報告が挙がっています。 Firefox3.6でdirect_bookmark.jsとdirect_hb.jsのはてブのタグを取得できていない問題(未解決→解決) - ヴィンペラートル・オクタウィアヌ... 続きを読む
XPathdocument.evaluateと名前空間がわからない - by edvakf in hatenaへのレスです。document.contentTypeが"application/xhtml+xml"の場合、名前空間があるので、通常のXPathでは要素を取得できません。resolverとprefixが必要になります。*1で、m.twitterはH... 続きを読む
■ XPathNSResolver のクロスブラウザとか 03:02 application/xhtml+xml の場合 (というより XML の場合)、XPath では namespace を持っているノードに対して prefix が必須 *1。すなわち HTML で //body と書いていたやつは //h:body とする必要があり、さらに... 続きを読む
通常、XPath を書くときは //p のようにすることが多いと思いますが、これには名前空間の指定が含まれていないため、XHTML 文書 (MIME タイプが application/xhtml+xml で提供されている文書) では使えません。これに対するアプローチとしては、//h:p のように... 続きを読む
XPath使いのための日本語チートシートを公開しています。内容物→XPathチートシート、XPath全関数一覧、Xpath for Javascriptなど。XPath使いのための日本語チートシート 第2版 XPathで楽してDOM操作したい!XMLを弄り倒したい!と思うけれども文法がよく分か... 続きを読む
document.evaluate の第二引数に適切なノードを指定していても, XPath expression が "/" で始まるとルートノードから走査されるので, 意図通りの結果が得られない可能性が高い. ありがちなのは AutoPagerize で 2 ページ目以降を処理しようとして XPath に ... 続きを読む
なぜPHPアプリにセキュリティホールが多いのか? 第18回 XPathインジェクション(その3) 2008年11月14日 大垣靖男 PHP, セキュリティ, プログラミング, XPath 前回までの2回でXPathクエリを非常に簡単に紹介してきました。今回はXPathインジェクションによる攻... 続きを読む
javascript, XPathXPathのevaluate結果に対する処理をスマートに書くための便利関数 - 今日もスミマセン。を見て、思いついた。$X関数は便利だけど、配列を詰めなおす処理が今ひとつだと感じてました。で、その改案です。http://gist.github.com/19461 function... 続きを読む
かねてより試してみたかったGreaseMonkeyスクリプト「AutoPagerize」が非常に便利だったのでWedata未登録のSITEINFOを書いてみました。 AutoPagerize用SITEINFO var SITEINFO = [ { name: 'ブラック会社に勤めてるんだが、もう俺は限界かもしれない', url: '^ht... 続きを読む
node()と*の違い //node() //* をそれぞれ実行してみればわかるが、node()はテキストノードなどを含めたすべてのノードを、*はNode.ELEMENT_NODEな要素だけを選択する。この違いはパフォーマンスに影響を与えるので、意識して使い分けるのが良い。 なお、 * はa... 続きを読む
ここより後、はfollowing-sibling::node()ですぐ書ける。ここより前まで、の"ここ"がはじまり部分のsiblingじゃなくてその子孫だったりすることがある。(祖先の兄弟だったりもすることもあるけど、それはかんがえてないけどできるんじゃないかなたぶん)パフォー... 続きを読む
SITEINFOの書き方入門 SITEINFOは次のページへのリンクがどれかを示すnextLinkと、ページの中の本文部分を示すpageElementとでできています。 nextLinkは複数にマッチするXPathでも大丈夫です。複数の要素にマッチするときは、一番はじめにマッチしたものが使わ... 続きを読む
javascript この XPath 使いたい><って思うことよくありませんか?サイト見てて、あ、このボタンにグリモンであんな機能やこんな機能付けたい><!って思うこととかありますよね!そんなときに、いちいち要素の位置とか考えずに右クリックで XPath をコピペ... 続きを読む
GreasemonkeyのスクリプトでAutoPagerizeというものがあります。これはgoogleの検索結果のように何ページにもページが別れているときに、次のページを表示するためのリンクを押さなくても自動的に次のページの中身がAjaxで継ぎ足されて表示されるというものです... 続きを読む
id:quaa:20060306#p1を見て、ループを回して要素にアクセスしたときに速度がどうなのか気になったので調べてみた。スクリプト 測定結果//a (Opera 9.0 TP2)計12345678910UNORDERED_NODE_ITERATOR_TYPE481702030206112070304020ORDERED_NODE_ITERATOR_TYPE260204... 続きを読む
RSS中のprefixが付いてない要素をXPathで取得できずに何時間も悩んでしまった。調べてみると410 Goneに解決法があった。 Document.prototype.xpath = function(exp, node) { if (!node) node = this; return this.evaluate(exp, node, resolver, XPathResult.OR... 続きを読む
W3C(World Wide Web Consortium)は23日から、XMLデータやXML 文書に対する問い合わせ、変換、参照を実施するための一連の仕様群を公開している。今回公開された仕様は次のとおり。XQuery 1.0、XSLT 2.0、XPath 2.0を中心としたXMLの問い合わせに関する仕様であ... 続きを読む
この文書では拡張機能や Web サイトから JavaScript 内で XPath を使うためのインターフェースについて解説します。Mozilla は DOM 3 XPath のかなりの部分を実装しており、HTML 文書と XML 文書の双方に対して XPath 式を実行することができます。 XPath を利... 続きを読む