プログラミングを中心に技術的な事柄を忘れないように書き残します。Language)とは、XML形式の文書から、特定の部分を指定して抽出するための簡潔な構文(言語)です。HTML形式の文書にも対応します。CSSではセレクタを使ってHTML文書内の特定の部分を抽出しますが、XPathはより簡潔かつ柔軟に指定ができるとされています。以下の例はbody以下のリンク要素(hogeクラス)を取り出す書き方です。a.hogeXPath/html/body//a[@class="hoge"]XPathを試してみる上記のとおり、XPathはHTMLのパースに使えます。HTMLに対してXPathでデータを抽出するのがお試しとしては簡単でしょう。開発者ツールには、XPathによる検索機能があります。これを使えば、面倒な環境構築などは不要で、いきなり表示しているページから、ほしい要素の検索を試すことができます。上で紹介したXPathのサンプルを使って次のリンクを取得してみます。↓これを探すhogeChromeでこのページを表示し、右クリックメニューの[検証]から開発者ツールを表示します。上のXPathを入力すると、得られる要素が選択されるはずです。取得する画面上の要素を取得するためのXPathを逆引きすることも可能です。開発者ツールのElementsタブのhtmlで、要素を右クリックします。その要素を取得するためのXPathがクリップボードにコピーされます。一例ですが、参考にするには十分です。このChromeの機能を使うと、XPathの習得速度の向上が見込めます。MSDNCSSセレクタに様々な指定方法があるのと同じように、XPathにも様々な構文が存在します。基本的な事柄を、さらに代表的な構文をまとめました。XPathとノードXPathが扱う文書は、以下の種類に分類されます。これらのノードをXPathで取得することができます。WikipediaXPathの最も一般的な書き方で、基準となるノードから別のノードを指定できます。区切りながら階層を記述します。html(ルート)要素の子要素bodyの子要素aをは、次のように示します。/html/body/aスラッシュで区切られた部分をロケーションステップといい、各種構文を使って記述していきます。正式構文のほうは冗長ですが、多くのオプションを記述できるようです。以下にまとめたのは省略構文での記述サンプルです。絶対パス/html/bodyスラッシュ始まりの記述はルートからの絶対パスを意味します。この例の場合、ルート要素のhtmlの子要素に当たるbody要素を指定しています。相対パスhtml/bodyスラッシュ始まりではないので、コンテキストノードからの相対パスを意味します。全要素div/*アスタリスク(*)は全要素を意味します。この例だと、div要素の全子要素を指定しています。ドキュメント内のすべての要素//*子要素div/pスラッシュは子要素を意味します。この例ではdiv要素の子要素に当たるp要素を指定しています。子孫要素div//*スラッシュ2つで子孫要素を意味します。この例ではdiv要素の子孫要素すべてを指定しています。親要素a/..ピリオド2つで親要素を意味します。この例ではa要素の親要素を指定しています。idで要素を指定id("hoge")id関数を使って、idで要素を指定できます。属性を取得//a/@hrefアットマークで属性ノードを取得できます。この例ではaリンクに設定されているhref属性を取得します。属性で要素を指定//*[@href="./index.html"]アットマークで属性を指定できます。この例では、すべての要素のうちhref属性が./index.htmlの要素のみを指定しています。属性そのものを持つかどうかの条件は次のようにします。//input[@disabled]子要素に特定の要素が含まれるものを指定//div[a]a要素を子要素に持つdiv要素を指定するには、角括弧を使って記述します。N番目の要素を指定//table//tr[3]複数に合致する場合に、N番目の要素を指定することができます。この例では、tableの行から3行目を取得しています。first()関数もしくはlast()関数を使い、先頭もしくは最終要素を取得できます。LanguageXPathでは様々な演算子や関数で複雑な条件を指定できます。以下に使えるものの一覧を示します。Wikipediaからの引用です。2つのノード集合の和集合のノード集合を返す。与えられた文字列を連結した文字列を返す。指定された範囲の部分文字列を返す。指定された文字列が部分文字列として含まれる場合に真値を返し、それ以外の場合に偽値を返す。指定された文字列が先頭の部分文字列である場合に真値を返し、それ以外の場合に偽値を返す。指定された文字列が末尾の部分文字列である場合に真値を返し、それ以外の場合に偽値を返す。指定された文字列よりも前にある部分文字列を返す。指定された文字列よりも後ろにある部分文字列を返す。コメントをキャンセルメールアドレスが公開されることはありません。WordPress.。