长生不老药和二郎记录模式匹配



如何在Elixir中进行这种记录模式匹配?

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

额外的好处:重写这个例子,从戴夫·托马斯的博客Elixir。


更新

发现了我的问题所在。你必须使用

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

将XMerLlib中的记录提取到您的程序中,如下所述。然后.value语法工作,行可以写如下:

rank = Enum.first(xmerl_xpath.string('//SalesRank/text()', xml)).value

请参阅问题以获得答案。(这是未回答列表的顶部)

否则,我在elixir-lang.org 上的一篇博客文章中找到了答案

对于最常用的记录:

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

最新更新