Erlang XML根元素的属性生成
我正在使用xmerl的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
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
""