[英]Character escape in Javascript
我在 javascript 中有一个字符串,它对应于一个 xml,当将它分配为属性值时,它会用"
转义我的引号。 ,但我还需要它来逃避“<”和“>”标志,这是不做的。
这是 xml 的示例:
<row row="0" XMLContent="<?xml version='1.0' encoding='UTF-8'>"></row>
我决定用替换来做到这一点:
value.replaceAll("<", "<").replaceAll(">", ">");
m_row.attributes.getNamedItemNS(null, name).value = value;
但是通过这样做,您可以像这样分配它:
<row row="0" XMLContent="&lt;?xml version="1.0" encoding="UTF-8" &gt;"></row>
用于转义“<”和“>”的代码与符号也被转义,使其看起来像这样:
从"<"
到"<"
">"
也一样因此,当我获取该属性的值并尝试将其解析为 XML 时,它给了我一个错误,因为它无法解释。
我将不胜感激。
这种情况你可以使用 < 和 >
<row row="0" XMLContent="<?xml version='1.0' encoding='UTF-8'>"></row>
如果您使用 DOM 读取/写入 XML,则不需要替换。 串行器将负责 escaping。
您的替换将导致<
和>
的双 escaping 。
const xmlDocument = (new DOMParser()).parseFromString( '<row row="0" XMLContent=""/>', 'text/xml' ); const row = xmlDocument.documentElement; row.setAttributeNS(null, "XMLContent", "<?xml version='1.0' encoding='UTF-8'?><demo/>"); const xmlString = (new XMLSerializer()).serializeToString(xmlDocument); console.log(xmlString);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.