الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

مشكلة مع Xml

بدأه 3ml3ml في 17 أغسطس 2008 · 5 رد · 849 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

أنا مبتدئ نوعا ما فى السى شارب فأنا اتعلمها منذ سنة و أثناء عملى على برنامج قارئ RSS لموفع معين

أجد البرنامج يقف و تظهر من السئ شارب هذه الرسالة

There are multiple root elements. Line 1, position 8.

و يشير على سطر عمل load لعملية rssStream

فهل من حل أرجوكم

#2
اقتباس
There are multiple root elements

لابد من وجود root element واحد فقط في ال document يحتوي كل ال elements الاخري

راجع هذه النقطة

#3

AhmedElbaz كتب:
لابد من وجود root element واحد فقط في ال document يحتوي كل ال elements الاخري

راجع هذه النقطة

متأسف لم أفهمك

يعنى ايه ?? سامحنى فأنا اتعلمها منذ سنة فلم ألم بما فيها بالكامل

هذا هو الكود داخل public ArrayList

			 System.Net.WebRequest myRequest = System.Net.WebRequest.Create(rssURL);
			 System.Net.WebResponse myResponse = myRequest.GetResponse();


			 System.IO.Stream rssStream = myResponse.GetResponseStream();
			 System.Xml.XmlDocument rssDoc = new System.Xml.XmlDocument();

			 rssDoc.Load(rssStream);

المشكلة أنه يشير الى

rssDoc.Load(rssStream);

مع العلم انه يأخذ لينكات RSS من داخل داتابيذ مربوطة بالبرنامج

#4

السلام عليكم و رحمة الله

أنا عملت المشروع مند مدة و لم تواجهني هذه المشكلة.

أولا قم بتضمين أسماء النطاقين في أعلى الملف

using System.Net;
using System.IO;
using System.Xml;

و هذا الكود الذي استعملته في مشروعي ..

// Begin the web request to the desired RSS feed
				WebRequest myRequest = WebRequest.Create(rssURL);
				WebResponse myResponse = myRequest.GetResponse();

				// Convert Rss feed to an XMl document
				Stream rssStream = myResponse.GetResponseStream();
				XmlDocument rssDoc = new XmlDocument();

				rssDoc.Load(rssStream);
#5

المشكلة برده زى ما هيا

طب ده الكود بتاع query


{
try
{
foreach (rssDataSet.ChannelRow currentChannel in rssDataSet.Channel.Rows)
{
ArrayList result;
result = rssRssManager.ProcessNewsFeed(currentChannel.URL);

foreach (rssRssReader.NewsItem currentNewsItem in result)
{
string title = currentNewsItem.Title;

if (title.Length >= 50)
title = title.Substring(0, 49);

title = title.Replace("'", "");

string filterExpression = "Title = '" + title + "'";

System.Data.DataRow[] filteredNewsItems = rssDataSet.NewsItems.Select(filterExpression);

if (filteredNewsItems.Length == 0)
{
rssDataSet.NewsItemsRow newRow = rssDataSet.NewsItems.NewNewsItemsRow();
newRow.Title = currentNewsItem.Title;
newRow.Description = currentNewsItem.Description;
newRow.Link = currentNewsItem.Link;
newRow.ChannelID = currentChannel.ChannelID;
newRow.DataAcquired = DateTime.Now;

rssDataSet.NewsItems.AddNewsItemsRow(newRow);
}
}
}
}
}
private void queryChannels()

و ده بتاع الكلاس المستخدمة

using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
using System.Net;
using System.Xml;
using System.Collections;

namespace RssReader
{

	class NewsItem
	{
		private string _title;
		private string _link;
		private string _description;

		public string Title
		{
			get { return _title; }
			set { _title = value; }
		}

		public string Link
		{
			get { return _link; }
			set { _link = value; }
		}

		public string Description
		{
			get { return _description; }
			set { _description = value; }
		}

	}

	class RssManager
	{

		public static ArrayList ProcessNewsFeed(string rssURL)
		{
			try
			{


				WebRequest myRequest = WebRequest.Create(rssURL);
				WebResponse myResponse = myRequest.GetResponse();


				Stream rssStream = myResponse.GetResponseStream();
				XmlDocument rssDoc = new XmlDocument();

				rssDoc.Load(rssStream);


				XmlNodeList rssItems = rssDoc.SelectNodes("rss/channel/item");


				ArrayList returnArrayList = new ArrayList();


				for (int i = 0; i < rssItems.Count; i++)
				{
					XmlNode rssDetail;

					NewsItem tempNewsItem = new NewsItem();

					rssDetail = rssItems.Item(i).SelectSingleNode("title");
					if (rssDetail != null)
					{
						tempNewsItem.Title = rssDetail.InnerText;
					}
					else
					{
						tempNewsItem.Title = "";
					}

					rssDetail = rssItems.Item(i).SelectSingleNode("link");
					if (rssDetail != null)
					{
						tempNewsItem.Link = rssDetail.InnerText;
					}
					else
					{
						tempNewsItem.Link = "";
					}

					rssDetail = rssItems.Item(i).SelectSingleNode("description");
					if (rssDetail != null)
					{
						tempNewsItem.Description = rssDetail.InnerText;
					}
					else
					{
						tempNewsItem.Description = "";
					}

					returnArrayList.Add(tempNewsItem);
				}

				return returnArrayList;
			}
			catch (Exception ex)
			{
				throw ex;
			}
		}
	}
}

فأين الخطأ فيه رجاء مساعدتى

#6

ياجماعة يعنى مفيش حل ؟؟؟؟

مواضيع مشابهة