我正在尝试使用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,并使用mochiwebxpath,但后者本质上是xmerlxpath的包装器。)