C#でxmlデータを処理する必要がありますが、時には不正なXML文字が存在することがあります。 たとえば、このXMLコードは、それが無効であるとして解析できないだろう:それは理にかなっている、有効ではありませんので、XML文字列内の不正な文字を削除する必要があります
<xml>Another way to write a heart is <3</xml>
XMLパーサがエラーをスローします。 しかし、私は "<"と "& lt;"のどちらかを置き換える方法はないようですが、
<xml>Another way to write a heart is <3</xml>
脚注を:ようパーサが受け取ることになります...それはすべての時間に発生していない、それはかなり大きなそのものできるXML内の任意のノードでoccureことができると私は前に言ったよう
これを処理できる関数はありますか?
本当に難しいのは、XMLで無効な文字をエスケープすることは、出力が無効になることです。あなたはXMLのプロデューサを制御できませんか?有効なタグ名(タグ名は数字で始めることはできないので、上記の例は修正可能です)などを調べることができるので、Regexがここで助けてくれるでしょう。 – Charleh
問題は、XMLで作業していないことです。 XMLに幾分似ていますが、XMLの規則に従って正しく構築されていない文字列を扱っています。したがって、この問題を解決するためのXMLツールを検討しないでください。 Charlehが示唆しているように、最良の解決策は、あなたにこの入力を提供している人の誰かに、本物のXMLを提供することに切り替えることです。 –