2013-06-27 10 views
14

Jak dokonać tego rodzaju dopasowania wzorców rekordów w eliksiru?Elixir and Erlang Records Pattern Matching

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

Bonus: przepisać this przykład z blogu Dave Thomas w Elixir.


Aktualizacja:

znaleźli był mój problem. Musisz użyć

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

wyodrębnić rekord z XMerL lib do programu jak stwierdzono here. Następnie .value prace składnia i linia może być zapisana następująco:

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

Henry, czy mógłbyś zmienić to w odpowiedź i oznaczyć to jako zaakceptowane. Dzięki! –

Odpowiedz

2

patrz pytanie odpowiedzi. (To jest na szczycie listy nieodebranych)

przeciwnym razie znalazłem odpowiedź podczas moich badań w blog post na elixir-lang.org

Do najczęściej stosowanych zapisów:

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