我想知道如何使用字符"
"
(LINE FEED)来分隔属性中的某些信息。看下面的例子:
<element attrinfo="info1=109
info2=108
info3=107" />
我使用SetAttribute()
来设置属性的文本,但是当我保存XML时,attrinfo
中的信息看起来像这样:
<element attrinfo="info1=109&#xA;info2=108&#xA;info3=107" />
"&"
是一个特殊字符,因此XML将其替换为"&"
我该如何解决这个问题?我看到了一些关于使用Entity Reference的内容,但我不明白如何使用它。
这是我的代码使用\ n:
ls_DadosAdicionais = "volume=1800;peso=78;altura=157"
ll_pos = POS( ls_DadosAdicionais, ";" )
DO
ls_DadosAdicionais = REPLACE( ls_DadosAdicionais, ll_pos, 1, '~n' )
ll_pos = POS( ls_DadosAdicionais, ";", ll_pos + 1 )
LOOP WHILE ll_pos > 0
lo_exm = io_xml.createElement( "exame")
lo_exm.SetAttribute( "dados_adicionais", ls_DadosAdicionais )
答案 0 :(得分:2)
您应该将实际换行符保存到属性中。逃逸由API处理。
换句话说:如果保存字符串"
"
,API会正确地将其转义为"&#xA;"
,以便在再次读取数据时返回字符串"
"
。始终存储您要存储的数据,绝不要进行任何手动转义。
答案 1 :(得分:2)
SetAttributes自动执行实体转换。不要手动替换换行符。只需在传递给SetAttribute的字符串中包含\ n即可。保存时它应该被转换为正确的实体。