gpt4 book ai didi

javascript - 如何在 javascript 中转义 xml 实体?

转载 作者:IT王子 更新时间:2023-10-29 02:50:40 24 4
gpt4 key购买 nike

在 JavaScript(服务器端 nodejs)中,我正在编写一个生成 xml 作为输出的程序。

我通过连接一个字符串来构建 xml:

str += '<' + key + '>';
str += value;
str += '</' + key + '>';

问题是:如果value怎么办?包含类似 '&' 的字符, '>''<' ?转义这些字符的最佳方法是什么?

或者是否有任何可以转义 XML 实体的 javascript 库?

最佳答案

HTML 编码只是简单地替换了 & , " , ' , <>字符及其实体等价物。如果您不更换 &,订单很重要首先是字符,您将对某些实体进行双重编码:

if (!String.prototype.encodeHTML) {
String.prototype.encodeHTML = function () {
return this.replace(/&/g, '&amp;')
.replace(/</g, '&lt;')
.replace(/>/g, '&gt;')
.replace(/"/g, '&quot;')
.replace(/'/g, '&apos;');
};
}

作为@Johan B.W. de Vries 指出,这将与标签名称有关,我想澄清一下,我假设这是用于 value

相反,如果你想解码 HTML 实体 1 ,确保你解码&amp;&在其他一切之后,这样您就不会对任何实体进行双重解码:

if (!String.prototype.decodeHTML) {
String.prototype.decodeHTML = function () {
return this.replace(/&apos;/g, "'")
.replace(/&quot;/g, '"')
.replace(/&gt;/g, '>')
.replace(/&lt;/g, '<')
.replace(/&amp;/g, '&');
};
}

<子> 1只是基础知识,不包括 &copy;©或其他类似的东西


就图书馆而言。 Underscore.js (或 Lodash 如果您愿意)提供 _.escape执行此功能的方法。

关于javascript - 如何在 javascript 中转义 xml 实体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7918868/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com