XPathでの記述は一見ややこしいように見えますが、慣れてしまえばとても単純です。
今回はソースコードを例にして、XPathでの記述サンプルをご紹介いたします。
[例]
<html>
<head>
<title>flamingo XPathサンプル</title>
</head>
<body>
<div id="main">
<div class="clearfix">
<p>サンプルテキスト01</p>
</div>
<div class="clearfix">
<ul>
<li>りんご</li>
<li>みかん</li>
<li>いちご</li>
</ul>
</div>
<div>
<ul>
<li>いぬ</li>
<li>ねこ</li>
</ul>
</dil>
<p>サンプルテキスト02</p>
</div>
</body>
</html>
・タイトルタグ
//title
"//"とは全位置を意味します。
これを先頭につけることによって、全位置から右記の要素を取得できます。
よって、上記記述によって「ソースコード内にある<title></title>の中身」が取得できます。
・id="main"のdiv
//div[@id="main"]
"[]"を付与することによって、左記タグの詳細を指定することができます。
上記の記述は、idがmainのdivタグ、という指定です。
・サンプルテキスト01
//div[@id="main"]/div[@class="clearfix"]/p
スラッシュが1個の場合は直下の子要素を意味します。
ちなみにスラッシュが2個の場合は子要素、孫要素全てが対象となります。
・みかん
//div[@class="clearfix"]/ul/li[2]
タグに"[2]"と記述することで、並列要素内の何番目の要素かを指定することができます。
・いぬ
//div[@id="main"]/div[not(@class)]/ul/li[1]
classを持たない場合は"[not(@class)]"と記述することで指定が可能です。
もちろん指定をしなくても取得はできますが、その場合classの有無にかかわらず、
並列内にあるdivタグが全て取得されてしまいます。
・サンプルテキスト02
//div[@id="main"]/p
サンプルテキスト01とは違い、こちらのpタグは<div id="main">の子要素ですので
この記述の仕方で取得することができます。
※当ナレッジに掲載されているサンプルは、XPathを記述したことのない方を対象にしています。