-5

Textwriter を使用して XML を書き込もうとしましたが、文字 < > ' " & をそのファイルに書き込めないことがわかりました。

私が書いたクラスは次のとおりです。

public void Write_File(rss r, string fileName)//-- rss here is a class I built in other place
{
    XmlSerializer serializer = new XmlSerializer(typeof(rss));
    TextWriter textWriter = new StreamWriter(path + fileName);//-- path is directory path to save xml file
    serializer.Serialize(textWriter, r);
    textWriter.Close();            
}

誰でもこれを修正するのを手伝ってもらえますか?

4

2 に答える 2

1

あなたはできません。C# はそのような文字を変換します。

< to &lt; 
> to &gt;
& to &amp;

許可される場合は、XML を破棄できます。タグを追加する必要がある場合、単純にシリアライザーを使用することはできません。フォームXMLDocumentクラスなどのコードを使用してドキュメントを作成する必要があります

于 2013-05-21T13:34:07.987 に答える
0

System.Webプロジェクトにアセンブリを含め、HttpUtilityクラスを利用して、次のように文字列をエンコードするだけです。

public void Write_File(rss r, string fileName)//-- rss here is a class I built in other place
{
    XmlSerializer serializer = new XmlSerializer(typeof(rss));
    TextWriter textWriter = new StreamWriter(path + fileName);
    serializer.Serialize(textWriter, HttpUtility.HtmlEncode(r));
    textWriter.Close();            
}

ToStringここで XML 文字列を返すメソッドをオーバーライドしたとしか思えません。rssなぜなら、そこで文字列を取得する方法は他にないからです。

于 2013-05-21T13:38:48.133 に答える