Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?
タグ検索の該当結果が少ないため、タイトル検索結果を表示しています。
Xee: A Modern XPath and XSLT Engine in Rust By Martijn Faassen • 2025-03-27 • Tags: xml, rust, xpath, lxml For the last two years I've been working on a programming language implementation in Rust named Xee. Xee stands for "XML Execution Engine" and it supports modern versions of XPath and XSLT. Those are programming languages, and yes, that's XML stuff. Now hold on. Your brain might shut down whe
htmlのツリー構造を決める人がちょいちょい構造を変えることが分かり、子要素から親要素へ向かっての検索を行いたかった。 使用したライブラリがコメントアウトされたhtmlタグに反応するので、最初に取り除きたかった。 よって資料が少なかったXPathを選択。classやidの名前や名づけルールを変えられたら困るけど、それはまあ仕方ないかなと思っている。 XPath学習資料 自分が探した範囲では以下のURLが参考になった。 文字ベースの資料 初めて入門するのに読みやすい記事 (*2つはほぼ同一内容) 便利なXPathまとめ - ZOZO TECH BLOG クローラ作成に必須!XPATHの記法まとめ - Qiita XPathに対して「何だこれ・・・」と混乱した頭でも落ち着いて読めば理解できる平易さだった。大変助けられた。 分量はあるが良い入門 XPath | TECHSCORE(テックスコア)
この記事はドワンゴ Advent Calendar 2020 16日目の記事です。アドベントカレンダーが好きすぎて、これに加えて最終日も書かせていただきます。急拵えなので内容は薄いですが、興味があればお付き合いください。 はじめに この記事で紹介するXPath 1.0パーサは、ドワンゴ Advent Calendar 2020 最終日にて紹介予定のHTMLパーサである「gammo」向けに開発したものである。 最終日の内容はHTMLパーサに特化したものとなるため、この記事ではgammoが構築したDOMツリーをtraverseするための仕組みとして、XPath 1.0を実装した話を紹介する。 XPath 1.0 XPath 1.0は1999年に勧告されたXSLT 1.0と同時に公表されたもので、現在の最新バージョンである3.1と比較すると非常に機能が少ないシンプルな仕様となっている。 XPat
私なんぞは「その筋」の専門家でもなんでもないので、XMLと向き合わなければならないことなどさほど多くはありません。時折あるそんな機会も、とりあえずPythonでlxml使っておけばOK、てな感覚でおりました。XPath便利ですし、lxmlは速いのではないですかね。でもね、たまに困ることがあります。名前空間の指定されているXML、それもプリフィックス無し、デフォルト名前空間というやつが含まれるとき。そういうときはどうしたらよいんでしょうか? ※「トホホな疑問」投稿順Indexはこちら 最初に名前空間を使用していないXMLで、lxmlのXPath使って「便利」な例を掲げておきます。サンプルに使用したXMLは以下のようなズボラなものです。 <?xml version="1.0" encoding="UTF-8" ?> <sample> <rec> <title>t1</title> <body>
参考xpath cover page - W3CXPath | MDNクローラ作成に必須!XPATHの記法まとめ - QiitaXPath | TECHSCORE(テックスコア)サンプル↓ルート要素からツリー構造を指定。 /html/body/h1 ↓途中までのツリー構造の指定を省略。ツリー構造の途中で使うことも可能。 //h1 /html//a //div//a ↓属性名と値を指定。 //h1[@class='header1'] ↓属性名を指定。値は問わない。 //h1[@class] //*[@class] ↓指定する文字列が含まれる要素を取得。 //h1[contains(@class, 'head')] 第1引数:文字列が含まれているかどうか調査する対象第2引数:文字列↓タグ内テキストを検索対象にしたい場合。 //h1[contains(text(), '見出し')] ただし、この
Chromeを使って、要素を特定する文字列を簡単に知る方法 Chromeのデベロッパーツールで、要素を特定できる文字列の取得が可能です。 Windowsの場合、F12でツールを開いて、Elementタブを右クリックすると、取得できます。 XPathの記述を取得 取得結果 //*[@id=”rso”]/div[4]/div/div/div[1]/a[1]/h3 CSSセレクターの記述を取得 取得結果 #rso > div:nth-child(4) > div > div > div.yuRUbf > a:nth-child(1) > h3 実際にスクレイピングしていると、CSSセレクターのみ使用 CSSのみを使う理由は、2つあります。 CSSセレクターの方が記述が簡単 XPathが独自にもつ要素特定方法(XPathとCSSセレクターの要素特定の書き方の比較)は、使わない XPathの「直下の
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く