如何解码HTML实体

13

我有一个包含HTML实体的字符串变量:

var str = 'Some text & text';

我想将其转换(解码)为原始字符:

Some text & text

JavaScript没有内置函数可以实现所需的结果。 我不能使用jQuery或DOM对象,因为我需要它在Google Apps Script中工作。

有什么简单的方法可以做到这一点吗?

2个回答

21

你可以使用内置的Xml服务(参考链接):

var str = 'Some text & text';
var decode = XmlService.parse('<d>' + str + '</d>');
var strDecoded = decode.getRootElement().getText();

或者您可以使用内置的E4X XML类。

var str = 'Some text &#x26; text';
var decode = new XML('<d>' + str + '</d>');
var strDecoded = decode.toString();

谢谢分享这个很棒的技巧! :) 是否有一种方法可以将字符串中的特殊字符转换为它们对应的HTML实体?谢谢! :) - Saqib Ali
1
@Hafez Xml.parse 已被 XmlService.parse 替换。 - user6655984
对于新的 XML:ReferenceError: XML is not defined - undefined

0
首先,您需要创建一个临时的Google文档并获取其docid
然后,您需要启用Drive API高级服务。
然后,您可以使用以下代码:
function htmltotext() {
  
  var html = 'Your <b>HTML</b> code &#x26; entities';
  var blob = HtmlService.createHtmlOutput(html).getBlob();

  var docid = 'Your doc id here';

  Drive.Files.update('',docid,blob);

  var doc = DocumentApp.openById(docid);
  var text = doc.getBody().getText();
  doc.saveAndClose();

  Logger.log(text);
  return text;
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接