menu
書いてる野郎
orebike@gmail.com
XMLでの要素の位置特定の記述XPathの書き方に関して。XMLに対するSQLみたいなもん。
根元に書くスラッシュ2個は全位置を意味する。全ノードの親ノード集合体と考えるとわかりやすいか
//
全部の位置に対しての全部の要素なので全要素
//*
いきなり要素を書くとルートノードからの検索になる
html
スラッシュで区切って書く。 スラッシュは単なる区切りなんだけど、その後に何も書かないと子要素を選択したという省略形になるので子要素の選択になる
html/body
どんどんもぐる
html/body/p/a
スラッシュ2個
html//p
複数要素にヒットしている。そのまま。
2番目なら2
html/body/p/a[position()=2]
XPathでの1番目は1。ゼロじゃない
省略で
html/body/p/a[2]
こうとも書ける。 この2は合致している範囲で2番目にあるやつ全部なので全体での2番目ではない
html/body/hoge[@zokuseiname='ぞくせいの値だよ']
html/body/hoge[@zokuseiname]
属性名だけ指定してやるとそうなる
html/body/hoge[not(@zokuseiname)]
これはヒットした中からもう一度ヒットさせるということ
html/body[@class='hoge'][@type='button']
和集合の演算子が
|
らしいのでおそらく
html/body[@class='hoge'][@type='button']|html/body[@class='hoge'][@type='checkbox']
このように記述できるのであろう・・・
html/body/h1[position=1]text()