1

xml ファイルをデータセットにパラシングしています。xml データに「&」または特別な文字が含まれているとエラーが発生します。それを削除するにはどうすればよいですか?

タグの下の「&」を削除するにはどうすればよいですか?

xml

 < department departmentid=1 name="pen & Note" >

$

string departmentpath = HostingEnvironment.MapPath("~/App_Data/Department.xml"); DataSet departmentDS = new DataSet(); System.IO.FileStream dpReadXml = new System.IO.FileStream(departmentpath, System.IO.FileMode.Open); try { departmentDS.ReadXml(dpReadXml); } catch (Exception ex) { //logg }
4

3 に答える 3

2

XML の文化では、XML の作成者は、仕様に準拠した整形式の XML を提供する責任があります。受信者が間違った場合、受信者はそれを拒否することが期待されます。したがって、不適切な XML を修復して適切な XML に変換しようとすることは、効率に反することになります。それは、レストランで粗末な料理が出されるようなものです。次のテーブルにいる人にどうやって消化できるようにするかを尋ねるのではなく、不平を言うべきです。

あなたが提供した入力は、アンパサンドよりもはるかに間違っています。XML として認識されることはほとんどありません。この混乱を堅牢なデータ フローに変えることはできません。

于 2012-05-18T17:13:52.240 に答える
2

あなたはそれを置き換えることができます&amp;

于 2012-05-18T15:25:46.910 に答える
1

コードはC#のようです。ただし、正しい言語タグを追加してください。

XML ドキュメント内でエスケープが必要になることが多い 5 つの特殊文字があります。このSOの質問を読むことができます。

次の 2 つの可能性があります。

  • メソッドDataSet::ReadXMLでこれらの特殊文字を処理できるようにする[推奨]
  • 入力ファイルからすべての特殊文字を変更する [非推奨]

2 番目の方法は、受信データを常に制御できるとは限らないため、お勧めしません (必要に応じて、データの前処理に時間を浪費する可能性があります)。特殊文字を適切ReadXMLに解析するには、入力 XML で適切なエンコーディングも定義する必要があります。

于 2012-05-18T15:34:42.420 に答える