2012年6月28日木曜日

XPath による要素の指定

1. XPath とは

XML Path Language – Wikipedia とは、

XML Path LanguageXPath; XMLパス言語) は、マークアップ言語 XML に準拠した文書の特定の部分を指定する言語構文である。

例えば、簡単な XPath の指定方法は、

//a

これにより、ウェブページ中の全てのアンカー要素を指定できる。

New Module: XPATH Fetch Page | Yahoo! Pipes Blog によると、

For example, if I want all the links in the page I can simply use “//a” to grab all links. If I want all the images in the html I can do “//img”.

XPath の要素の指定を確認には、Firefox のアドオンを用いると良い。

 

2. XPath でよく使う要素の指定方法

上記の例における XPath の

//

は、子孫要素を示す。要素間の直接の親子関係を超えて、要素を指定するために利用する。

指定する要素を絞り込むためには「述語」を使う。例えば、class 属性が hoge である要素を取得するには、

//*[@class=”hoge”]

John Resig - XPath and CSS Selectors には、XPath と CSS による要素を指定する簡単な例が挙げられている。

Goal CSS 3 XPath
All Elements * //*
All P Elements p //p
All Child Elements p > * //p/*
Element By ID #foo //*[@id='foo']
Element By Class .foo //*[contains(@class,'foo')] 1
Element With Attribute *[title] //*[@title]
First Child of All P p > *:first-child //p/*[0]
All P with an A child Not possible //p[a]
Next Element p + * //p/following-sibling::*[0]

(via New Module: XPATH Fetch Page | Yahoo! Pipes Blog

とりえあず、上記を把握しておけば、ある程度 XPath で指定できるようになる。

 

関連記事