0
HttpContext.Current.Response.ContentType = "text/xml";
HttpContext.Current.Response.ContentEncoding = Encoding.UTF8;

HttpPostedFile file = HttpContext.Current.Request.Files[0];

// If file.InputSteam contains an "&", exception is thrown
XDocument doc = XDocument.Load(XmlReader.Create(file.InputStream)); 

HttpContext.Current.Response.Write(doc);

xmlドキュメントを生成する前&に置き換える方法はありますか?&ファイルに。が含まれていると、現在のコードがクラッシュします&

ありがとう

4

3 に答える 3

2

コードは、有効なXMLでない場合にのみクラッシュします。たとえば、これは問題ないはずです。

<foo>A &amp; B</foo>

あなたが実際に持っているなら

<foo>A & B</foo>

次に、XMLファイルを取得していません。XMLに少し似ているものがあるかもしれませんが、それは実際には有効なXMLではありません。

ここでの最善のアプローチは、データをその場で変換することではなく、実際のXMLになるようにデータのソースを修正することです。この時代に無効なXMLを生成する理由は本当にありません。

さらに、ここで使用する理由はありませんXmlReader.Create-使用するだけです

XDocument doc = XDocument.Load(file.InputStream);
于 2012-08-08T08:45:44.773 に答える
0

使用するHttpEncoder.HtmlEncode()

http://msdn.microsoft.com/en-us/library/system.web.util.httpencoder.aspx

于 2012-08-08T08:42:36.573 に答える
0

「&アンプ;」を使用できます 脱出する "&"。

xml ドキュメントには、エスケープする必要がある文字がいくつかあります。

& ---- &amp;

< ---- &lt;

> ---- &gt;

" ---- &quot;

' ---- &apos;
于 2012-08-08T08:54:13.697 に答える