私はコード内に動的なXMLファイルを生成してダウンロードしようとしています。これは私が使用した関数ですAsp.netでXMLを生成
xmlUrl Url = new xmlUrl();
Url.Url = fileName.Text;
List<xmlUrl> Urls = new List<xmlUrl>();
Urls.Add(Url);
XmlSerializer ser = new XmlSerializer(Urls.GetType());
StringBuilder sb = new StringBuilder();
StringWriter writer = new StringWriter(sb);
ser.Serialize(writer, Urls);
XmlDocument doc = new XmlDocument();
doc.LoadXml(sb.ToString());
doc.WriteTo(xmlWriter);
xmlWriter.Flush();
xmlWriter.Close();
byte[] byteArray = stream.ToArray();
Response.Clear();
Response.AppendHeader("Content-Disposition", "attachment; filename=" + lblFile.Text + ".xml");
Response.AppendHeader("Content-Length", byteArray.Length.ToString());
Response.ContentType = "text/xml";
Response.BinaryWrite(byteArray);
この機能は動作しています。ダウンロードされたxmlファイルには、関連ページのhtmlコードが含まれています。
<?xml version="1.0" encoding="utf-16"?>
<ArrayOfXmlUrl xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xmlUrl>
<Url>
Url of the web content
</Url>
</xmlUrl>
</ArrayOfXmlUrl>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta charset="utf-8" /><meta http-equiv="X-UA-Compatible" content="IE=edge" /><meta name="viewport" content="width=device-width, initial-scale=1" />
</head>
<body>
source of the body
</body>
私はこのファイルをxml解析で解析できません。それは私にこのエラーを与えます。
An unhandled exception of type 'System.Xml.XmlException' occurred in System.Xml.dll
Additional information: There is no Unicode byte order mark. Cannot switch to Unicode.
これはどのように修正できますか?
エラーメッセージを検索しようとすると、たくさんのヒットがあります。 [ここ](http://stackoverflow.com/q/29915467/1997232)。 – Sinatr
レスポンスにファイルを書き込んだら、ページの終了が終了するようにファイルを終了する必要があります。ページを操作する必要があるために問題が発生する場合は、別のブラウザウィンドウでPDFをダウンロードする必要があります。 – mason
XMLのhtml部分を削除する必要があります。そのXMLのジャンク。どうすればいい? –