3
は、私はそれで&を持つXML文書を持っているので、私は、私は、不正なXML文字エスケープする機能を書いたエラーNode xml2jsモジュールを使用して文字をエスケープするにはどうすればよいですか?
[Error: Invalid character in entity name
Line: 155
Column: 63
Char: ]
を取得しています:
const escapeIllegalCharacters = (xml) => {
xml = xml
.replace(/&/g,'&')
.replace(/"/g, '"')
.replace(/'/g, ''')
.replace(/>/g, '>')
.replace(/</g, '<');
return (xml);
}
をそしてvalueProcessorにそれを置きます:
return parse.parseString(xml, {valueProcessors: [escapeIllegalCharacters]});
でも、私はまだ同じエラーが発生しています。これは、xml2jsモジュールを使用して文字をエスケープする方法が間違っていますか?
返信いただきありがとうございます!だから、私は実際にparseStringを呼び出す前にエスケープ関数を実行しようとしましたが、xml文字の開始タグと終了タグをエスケープしていたところで問題が発生しました。私はあなたの上記のソリューションはアンパサンドのために動作すると思うが、タグ間だけのすべての不正な文字をエスケープするための一般的な解決策はありますか?私はvalueProcessorsソリューションがそれだと思った... – user1023465
結論は、あなたのXMLが無効であり、パーサーがそれを受け入れないということです。おそらくもっと寛容な別のものがあるでしょうか?もしそこに '<' and '> '文字をエスケープしていなければ、本当の問題があります。パーサーは、何かがタグなのかどうかを判断する方法を必要とします。したがって、常にあいまいさがあり、一般的な解決策はありません。 – cartant
ええ、公正な点、私はあなたの答えをチェックし、それはアンパサンドのために働く、私はそれを正しくマークするつもりです。ありがとう! – user1023465