2013-06-27 11 views
14

Wie man diese Art von Datensatz Muster in Elixir Match?Elixir und Erlang Records Pattern Matching

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

Bonus: umschreiben this Beispiel von Dave Thomas Blog in Elixir.


aktualisieren:

gefunden, was mein Problem war. Sie haben

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

verwenden, um den Datensatz aus XMerL lib in Ihrem Programm zu extrahieren als here angegeben. Dann werden die .value Syntax funktioniert und die Zeile kann wie folgt geschrieben werden:

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

Henry, würdest du das bitte in eine Antwort umwandeln und es als akzeptiert markieren. Vielen Dank! –

Antwort

2

Siehe Frage Antwort. (Dies ist an der Spitze der Liste unbeantwortet)

Ansonsten ich die Antwort während meiner Untersuchungen in einem blog post auf elixir-lang.org

Für den am häufigsten verwendeten Datensätze gefunden:

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