HTML エンティティ文字を Unicode バージョンに変換する必要があります。たとえば、私が持っているとき&
、私はちょうど欲しいです&
。これには特別な関数がありますか、それとも<-->replace()
のカップルごとに関数を使用する必要がありますか?HTML Entity character
Unicode character
前もって感謝します。
HTML エンティティ文字を Unicode バージョンに変換する必要があります。たとえば、私が持っているとき&
、私はちょうど欲しいです&
。これには特別な関数がありますか、それとも<-->replace()
のカップルごとに関数を使用する必要がありますか?HTML Entity character
Unicode character
前もって感謝します。
Apps Script には DOM がありませんが、次の方法で HTML を解析してプレーン テキストを取得できます。
function getTextFromHtml(html) {
return getTextFromNode(Xml.parse(html, true).getElement());
}
function getTextFromNode(x) {
switch(x.toString()) {
case 'XmlText': return x.toXmlString();
case 'XmlElement': return x.getNodes().map(getTextFromNode).join('');
default: return '';
}
}
呼び出し
getTextFromHtml("hello <div>foo</div>& world <br /><div>bar</div>!");
戻ります
「こんにちは、フー&ワールドバー!」。
説明すると、2 番目のパラメーターが「true」の Xml.parse は、ドキュメントを HTML ページとして解析します。次に、ドキュメントをウォークし (欠落している HTML 要素や BODY 要素などを修正して、有効な XHTML ページに変換します)、テキスト ノードをテキストに変換し、他のすべてのノードを展開します。
Javascript (あなたが使っているものだと思います) には組み込み関数はありませんが、コンテンツを html タグに割り当ててからテキストを読み上げることができます。jQuery を使用した例を次に示します。
function htmlDecode(value){
return $('<div/>').html(value).text();
}
タグを実際に DOM にアタッチする必要はないことに注意してください。これは、新しいタグを作成し、その内容を読み取ってから破棄するだけです。ほんの数行を追加するだけで、バニラ Javascript で非常によく似た処理を実行できます。