Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/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
如何通过套接字生成和发送XML_Xml_Sockets_Erlang - Fatal编程技术网

如何通过套接字生成和发送XML

如何通过套接字生成和发送XML,xml,sockets,erlang,Xml,Sockets,Erlang,我试图从erlang值生成XML,并通过套接字返回该XML 既然如此 Value = 2, Type = "3", Scope = anatom 我想要 <?xml version="1.0"?> <result value=2 type="3" scope="anatom" /> <?xml version="1.0\"?> <result value=2 type="3" scope=[1,2]/>" 如果我愿意,我会得到类似于[

我试图从erlang值生成XML,并通过套接字返回该XML

既然如此

Value = 2, Type = "3", Scope = anatom
我想要

<?xml version="1.0"?> 
   <result value=2 type="3" scope="anatom" />
<?xml version="1.0\"?> <result value=2 type="3" scope=[1,2]/>"
如果我愿意,我会得到类似于[60,63120109,…]的东西

<?xml version="1.0"?> 
   <result value=2 type="3" scope="anatom" />
<?xml version="1.0\"?> <result value=2 type="3" scope=[1,2]/>"
它的名字叫

 ...
 Reply = xml_formater:format_return(Reply),
 {ok, Reply, State}
上面的回复被传递回我的套接字泛型行为,这反过来会导致

gen_tcp:send(Socket, io_lib:fwrite("~p~n",[Reply])),

能找个好心人帮我摆脱痛苦吗

似乎有两个问题:

A) 这不是格式良好的XML--


所以你将无法生成它

B) 之所以将输出视为整数列表,是因为Erlang中列表和字符串的关系——基本上“abc”相当于[$a、$B、$c](或[97,98,99])。erlang pretty打印机将显示一个包含所有可打印字符的列表,作为等效字符串。[1]

范围变量[1,2]相当于由两个不可打印字符(ascii 1,ascii 2)组成的字符串。xml例程并不关心它是否不可打印。输出显示为整数列表,因为它包含不可打印的字符

如果将Scope变量更改为[97,98],您将看到它在生成的xml中显示为“ab”

所以。。如果您对格式良好的结果满意--


范围变量必须是字符串“[1,2]”(或[$[,$1,$,$2,$]]或[91,49,44,50,93])

[1] 这是一种简化——还有几十篇文章对此进行了更详细的解释

gen_tcp:send(Socket, io_lib:fwrite("~p~n",[Reply])),
<?xml version="1.0"?> <result value=2 type="3" scope=[1,2]/>
<?xml version="1.0"?> <result value="2" type="3" scope="[1,2]"/>