Système.Xml.XmlException - élément Racine est manquant

Je fais une application web qui prend des flux RSS à partir de sites web(URLs sont dans la base de données), puis les charge dans mon application web. Mais j'obtiens cette erreur

Système.Xml.XmlException: élément Racine est manquant. l'élément racine est
manquant. au niveau de ligne : rssdoc.charge(rssStream);

Détails De L'Exception: System.Xml.XmlException: Il y a plusieurs éléments racines. Ligne 2, la position 2. alors, comment encapsuler tout le reste par un seul élément xml

Voici mon code:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Xml;
using System.Net;
using System.Text;
using System.IO;
using System.Data;
using System.Data.SqlClient;
public partial class poletics : System.Web.UI.Page
{
public SqlConnection oldbcon = new SqlConnection();
static int n = 0;
static DataTable dt = new DataTable();
protected void Page_Load(object sender, EventArgs e)
{
oldbcon = opncon();
using (oldbcon)
{
SqlDataAdapter ad = new SqlDataAdapter("SELECT * from LebPolRss", oldbcon);
ad.Fill(dt);
}
int f = 3;
while (n < f)
{
for (int i = 0; i < dt.Rows.Count; i++)
{
Literal feed = new Literal();
try
{
feed.Text = ProcessRss(dt.Rows[i][3].ToString(), dt.Rows[i][4].ToString());
}
catch (WebException ex)
{
WebResponse response = ex.Response;
}
Panel1.Controls.Add(feed);
}
n++;
}
}
public static string ProcessRss(string rssUrl, string feed)
{
WebRequest request = WebRequest.Create(rssUrl);
WebResponse response = request.GetResponse();
StringBuilder sb = new StringBuilder("");
Stream rssStream = response.GetResponseStream();
XmlDocument rssDoc = new XmlDocument();
rssDoc.Load(rssStream);//here is the line where the exception thrown
XmlNodeList rssItems = rssDoc.SelectNodes("rss/channel/item");
string title = "";
string link = "";
string description = "";
int upperlimit = rssItems.Count;
if (upperlimit > n)
upperlimit = n + 1;
if (upperlimit > 0)
{
sb.Append("<ul>");
for (int i = 0; i < upperlimit - n; i++)
{
XmlNode rssDetail;
rssDetail = rssItems.Item(i + n).SelectSingleNode("title");
if (rssDetail != null)
{
if (feed.ToString().Equals("tayyar"))
{
title = rssDetail.InnerText.Substring(5);
}
else
{
if (rssDetail.InnerText.Length > 75)
{
title = rssDetail.InnerText.Substring(0, 75);
}
else
{
title = rssDetail.InnerText;
}
}
}
else
{
title = "";
}
rssDetail = rssItems.Item(i + n).SelectSingleNode("link");
if (rssDetail != null)
{
if (feed.ToString().Equals("tayyar"))
{
if (rssDetail.InnerText.Substring(0, 21).CompareTo("http://www.tayyar.org") != 0)
{
link = "http://www.tayyar.org" + rssDetail.InnerText;
}
else
{
link = rssDetail.InnerText;
}
}
else
{
link = rssDetail.InnerText;
}
}
else
{
link = "";
}
rssDetail = rssItems.Item(i + n).SelectSingleNode("description");
if (rssDetail != null)
{
if (!rssDetail.InnerText.Substring(3, 3).Equals("Ad:"))
{
description = rssDetail.InnerText;
}
}
else
{
description = "";
}
switch (feed)
{
case "tayyar": sb.Append("<div class='imgsep'><li><img src='logos/tayyar.jpg' width='50px' height='30px'/>&nbsp;&nbsp;&nbsp;<a href='" + link + "' target='_blank'>" + title + "</a>&nbsp;<img src='Images/smallarrow.png'/></li></div>");
break;
case "14march": sb.Append("<div class='imgsep'><li><img src='logos/14march.jpg' width='50px' height='30px'/>&nbsp;&nbsp;&nbsp;<a href='" + link + "' target='_blank'>" + title + "</a>&nbsp;<img src='Images/smallarrow.png'/></li></div>");
break;
case "annahar": sb.Append("<div class='imgsep'><li><img src='logos/annahar.jpg' width='50px' height='30px'/>&nbsp;&nbsp;&nbsp;<a href='" + link + "' target='_blank'>" + title + "</a>&nbsp;<img src='Images/smallarrow.png'/></li></div>");
break;
case "alakhbar": sb.Append("<div class='imgsep'><li><img src='logos/akhbar.jpg' width='50px' height='30px'/>&nbsp;&nbsp;&nbsp;<a href='" + link + "' target='_blank'>" + title + "</a>&nbsp;<img src='Images/smallarrow.png'/></li></div>");
break;
case "sadabeirut": sb.Append("<div class='imgsep'><li><img src='logos/echobeirut.png' width='50px' height='30px'/>&nbsp;&nbsp;&nbsp;<a href='" + link + "' target='_blank'>" + title + "</a>&nbsp;<img src='Images/smallarrow.png'/></li></div>");
break;
case "assafir": sb.Append("<div class='imgsep'><li><img src='logos/assafir.png' width='50px' height='30px'/>&nbsp;&nbsp;&nbsp;<a href='" + link + "' target='_blank'>" + title + "</a>&nbsp;<img src='Images/smallarrow.png'/></li></div>");
break;
case "aliwaa": sb.Append("<div class='imgsep'><li><img src='logos/aliwaa.jpg' width='50px' height='30px'/>&nbsp;&nbsp;&nbsp;<a href='" + link + "' target='_blank'>" + title + "</a>&nbsp;<img src='Images/smallarrow.png'/></li></div>");
break;
}
}
sb.Append("</ul>");
}
return sb.ToString();
}
protected void LinkButton1_Click(object sender, EventArgs e)
{
oldbcon = opncon();
using (oldbcon)
{
SqlDataAdapter ad = new SqlDataAdapter("SELECT * from LebPolRss", oldbcon);
ad.Fill(dt);
}
n = 4;
for (int i = 0; i < dt.Rows.Count; i++)
{
Literal feed = new Literal();
try
{
feed.Text = ProcessRss(dt.Rows[i][3].ToString(), dt.Rows[i][4].ToString());
}
catch (WebException ex) { WebResponse response = ex.Response; }
Panel1.Controls.Add(feed);
}
LinkButton1.Visible = false;
}
public static SqlConnection opncon()
{
string connectionString = "Data Source=RAYYAN-THINK;Initial Catalog=newsProject;Integrated Security=True";
SqlConnection conn = new SqlConnection(connectionString);
return conn;
}
}

Trace De La Pile:

[XmlException: Root element is missing.]
System.Xml.XmlTextReaderImpl.Throw(Exception e) +69
System.Xml.XmlTextReaderImpl.ParseDocumentContent() +5589128
System.Xml.XmlTextReaderImpl.Read() +215
System.Xml.XmlLoader.Load(XmlDocument doc, XmlReader reader, Boolean preserveWhitespace) +145
System.Xml.XmlDocument.Load(XmlReader reader) +107
System.Xml.XmlDocument.Load(Stream inStream) +130
poletics.ProcessRss(String rssUrl, String feed) in c:\Users\RAYYAN\Documents\Visual Studio 2012\WebSites\WebSite1\poletics.aspx.cs:57
poletics.Page_Load(Object sender, EventArgs e) in c:\Users\RAYYAN\Documents\Visual Studio 2012\WebSites\WebSite1\poletics.aspx.cs:36
System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +51
System.Web.UI.Control.OnLoad(EventArgs e) +92
System.Web.UI.Control.LoadRecursive() +54
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +772
meta.stackexchange.com/questions/10647/...
Évidemment, cela semble être un problème avec le fichier xml. Peut-être que vous pouvez publier le code xml qui génère cette exception?
C'est trop de code. Vous devez utiliser votre jugement pour afficher uniquement les éléments pertinents, post le XML si possible et d'être clair sur sur la ligne à laquelle l'exception est levée.
désolé pour l'oubli de la ligne sur laquelle l'exception est levée, est à: rssdoc.charge(rssStream); et je tiens à ajouter que ne me donne toujours cette erreur. et comment je peux vous donner les fichiers xml!!! toutes les url que iam prenez le flux!!

OriginalL'auteur ra22 | 2013-10-31