Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Erlang XML根元素的属性生成_Erlang_Elixir - Fatal编程技术网

Erlang XML根元素的属性生成

Erlang XML根元素的属性生成,erlang,elixir,Erlang,Elixir,我正在使用xmerl的export\u simple函数,无法找到为根xml元素生成属性的方法。我试过这个: defmodule SomeModule do require Record Record.defrecord :xmlAttribute, Record.extract(:xmlAttribute, from_lib: "xmerl/include/xmerl.hrl") def func do {:bar, [], []} |> List.wrap

我正在使用xmerl的
export\u simple
函数,无法找到为根
xml
元素生成属性的方法。我试过这个:

defmodule SomeModule do
  require Record
  Record.defrecord :xmlAttribute, Record.extract(:xmlAttribute, from_lib: "xmerl/include/xmerl.hrl")

  def func do
    {:bar, [], []}
    |> List.wrap()
    |> :xmerl.export_simple(:xmerl_xml, [xmlAttribute(name: :encoding, pos: 0, value: :"UTF-8", normalized: true)])
    |> List.flatten()
    |> to_string()

  end

end
它可以工作,它会生成xml,但不会为根
xml
标记添加
encoding
属性


我做错了什么?

您为xmerl指定的回调模块只接受prolog作为您可以使用的属性,在这里您可以填充prolog所需的任何内容:

defmodule S do
  require Record
  Record.defrecord :xmlAttribute, Record.extract(:xmlAttribute, from_lib: "xmerl/include/xmerl.hrl")

  def func do
    {:bar, [], []}
    |> List.wrap()
    |> :xmerl.export_simple(:xmerl_xml, [xmlAttribute(name: :prolog, value: "<?xml version=\"1.0\" encoding=\"utf-8\"?>")])
    |> List.flatten()
    |> to_string()

  end
end

iex(12)> S.func
"<?xml version=\"1.0\" encoding=\"utf-8\"?><bar/>"
defs模块
要求记录
Record.defrecord:xmldattribute,Record.extract(:xmldattribute,from_lib:“xmerl/include/xmerl.hrl”)
def func do
{:bar,[],[]}
|>List.wrap()
|>:xmerl.export_simple(:xmerl_xml,[xmltattribute(名称::prolog,值:“”)])
|>List.flatte()
|>to_string()
结束
结束
iex(12)>S.func
""