2013-06-27 30 views
14

如何在Elixir中進行這種記錄模式匹配?Elixir和Erlang記錄模式匹配

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

獎勵:重寫this來自Dave Thomas的Elixir博客的例子。


更新

發現了什麼是我的問題。你必須使用

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

從XMerL lib中記錄提取到你的程序的規定here。然後.value語法的作品和行可以寫如下:

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

亨利,請把它變成答案,並將其標記爲已接受。謝謝! –

回答

2

查看問題的答案。 (這是在沒有答案的列表的頂部)

否則,我在我的blog post上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") 
+0

https://github.com/expelledboy/exml :) – expelledboy