如何使这种记录模式匹配在长生不老药?

[ #xmlText{value=Rank} ]  = xmerl_xpath:string("//SalesRank/text()", Xml),

奖励:重写dave thomas在《长生不老药》博客中的例子。
更新:
找到了我的问题所在。你必须使用
defrecord :xmlText, Record.extract(:xmlText, from_lib: 'xmerl/include/xmerl.hrl')

从xmerl库中提取记录到您的程序中,如this所述。然后.value语法起作用,该行可以写如下:
rank = Enum.first(xmerl_xpath.string('//SalesRank/text()', xml)).value

最佳答案

答案见问题。
(这是未答复名单的第一位)
否则,我在elixir-lang.org上的一个blog post中找到了答案。
对于最常用的记录:

defrecord :xmlElement, Record.extract(:xmlElement, from_lib: "xmerl/include/xmerl.hrl")
defrecord :xmlText, Record.extract(:xmlText, from_lib: "xmerl/include/xmerl.hrl")

关于xml - Elixir和Erlang记录模式匹配,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17345939/

10-10 03:53