特性のタグを選択することができるiMacrosのTAGコマンドは、タグの選択にPOSとXPATHを利用することが出来ます。これら二つの使い分けを考えてみましょう。
POSとXPATHで表す場合との違い
XPATHについての説明で使った次のHTMLで考えてみましょう。
1 2 3 4 5 6 7 8 9 10 |
<!DOCTYPE html> <html> <body id="sample"> <h2>Example page</h2> <ul class="ex"> <li>page 1</li> <li>page 2</li> </ul> </body> </html> |
POSで表す場合
TAGコマンドをPOSを使う場合は、こちらのTAGコマンド(POSの場合)の記事でも書いていますが、POS、TYPE、ATTRの3つを指定する必要があります。上のHTMLファイルの “page 2” をPOSを使って選択する場合、次の様にATTRをテキストを指定する書き方した出来ません。ここで<SP>とありますが、これはスペースのことです。
TAG POS=1 TYPE=LI ATTR=TXT:page<SP>2
これだと、”page 2″のテキストが変化すると選択出来なくなりますね。例えば週毎に記事が変わるサイトの場合、その記事のタイトルがテキストに設定されていたりします。これだとテキストが変化するので、POSの属性にテキストを指定すると週が変わるとそのタグを選択することが出来なくなりますね。
このように、選択したいタグにclassやidなどの属性が設定されていない場合、XPATHを使うことが有利です。
XPATHを使う場合
XPATHの場合は次の様に属性が設定してあるところを起点にできますね。この場合だとid属性が設定してあるbodyタグを起点にしています。サイトの構造が変化することは少ないので、選択したいタグに変化しにくい属性が無い場合はXPATHを使うとより良い選択ができますね。
TAG XPATH=”//body[@id=”sample”]/ul/li[2]”
POSとXPATHの使い分け
以上を踏まえて、POSとXPATHは次のように使い分けることが出来ます。
POS | 選択したいタグにclassやidなどの変化しにくい属性が設定されている場合 |
XPATH | 選択したいタグにclassやidなどの変化しにくい属性が設定されていない場合 |
TAGコマンドを使う時は、選択したいタグを確認してPOSとXPATHを使い分けましょう