xmerl_xpathを使用して Erlang で解析済みの XML ドキュメントをクエリしようとしていますが、位置述語を機能させることができません。n 番目の子要素を返す代わりに、これまでに選択したすべての要素の n 番目の要素を取得します。
値 11 と 21 (「最初の列」) を抽出したいサンプル コード:
{XML,_} = xmerl_scan:string(
"<table>" ++
"<row><el>11</el><el>12</el></row>" ++
"<row><el>21</el><el>22</el></row>" ++
"</table>" ).
4 = length(xmerl_xpath:string( "//table/row/el", XML )). % OK
1 = length(xmerl_xpath:string( "(//table/row/el)[1]", XML )). % OK
1 = length(xmerl_xpath:string( "//table/row/el[1]", XML )). % Why not 2?
最後のクエリの結果は期待されていますか? 一般的な場合、xmerl_path を使用して n 番目の子を抽出する適切な方法は何ですか?
(私が実際にやろうとしているのは、 mochiweb_html を使用して HTML を解析し、 mochiweb_xpath を使用してクエリを実行することですが、後者は基本的に xmerl_xpath のラッパーです。)