【问题标题】:Elixir and Erlang Records Pattern MatchingElixir 和 Erlang 记录模式匹配
【发布时间】:2013-06-25 02:51:37
【问题描述】:

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

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

奖励:重写 Dave Thomas 在 Elixir 中的博客中的 this 示例。


更新

找到了我的问题。你必须使用

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

从 XMerL 库中提取记录到您的程序中,如 here 所述。那么.value 语法就起作用了,该行可以写成如下:

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

【问题讨论】:

  • Henry,请您将其转换为答案并将其标记为已接受。谢谢!

标签: xml erlang elixir


【解决方案1】:

查看问题以获取答案。 (这是未答复列表的顶部)

否则我在 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")

【讨论】:

    猜你喜欢
    • 2018-01-08
    • 2014-01-11
    • 2011-11-10
    • 2014-06-27
    • 1970-01-01
    • 1970-01-01
    • 2017-07-09
    • 2011-11-27
    • 2016-10-29
    相关资源
    最近更新 更多