【发布时间】:2013-01-08 09:06:00
【问题描述】:
在将 TAB、换行和回车等特殊字符序列化为属性值时遇到了问题。
根据这个http://www.w3.org/TR/1999/WD-xml-c14n-19991109.html#charescaping,这些应该分别编码为&\#x9;、&\#xA;和&\#xD;。但是在 chrome 中调用:
var root = new DOMParser().parseFromString('<root></root>', 'text/xml').documentElement;
root.setAttribute('a', 'first\nsecond');
var serialized = new XMLSerializer().serializeToString(root);
给出一个字符串< root a="first\nsecond"/>,换行符没有转义。
再次加载时:
var loaded = new DOMParser().parseFromString(serialized, 'text/xml').documentElement;
loaded.getAttribute('a');
返回“第一秒”并且换行符丢失为一个空格。有没有人遇到过这个问题?任何帮助将不胜感激。
谢谢,
维克托
【问题讨论】:
标签: javascript xml xml-parsing xml-serialization escaping