قراءة XML في C#
-
29-09-2019 - |
سؤال
أنا أستخدم System.xml لقراءة ملف XML في C#. أولاً أفتح الملف (محليًا) ... وأستخدم Foreach للحصول على القيم ، مثل هذا:
XmlNodeList titles = xmlDoc.GetElementsByTagName("title");
foreach (XmlNode title in titles)
{
rowNews = new ListViewItem();
rowNews.Text = (title.ChildNodes[0].Value);
listView1.Items.Add(rowNews);
}
المشكلة هي أن لدي العديد من علامات RSS تسمى العنوان في ملفي ، أود أن أقرأ فقط تلك الموجودة في الداخل <entry></entry>
?
المحلول
نرى عقدة الأم و الاسم المحلي الخصائص:
if (title.ParentNode.LocalName == "entry") { ... }
نصائح أخرى
عادة ما يكون أسهل في الاستخدام xPaths في هذه الحالة ، لذلك سوف يبدو رمزك شيئًا كهذا:
XmlNodeList titles = xmlDoc.SelectNodes("//entry/title");
foreach (XmlNode title in titles)
{
rowNews = new ListViewItem();
rowNews.Text = (title.ChildNodes[0].Value);
listView1.Items.Add(rowNews);
}
أقترح استخدام XDocument
في ال System.Xml.Linq
مساحة الاسم.
ثم يمكنك ببساطة الكتابة document.Elements("entry").Elements("title")
هل جربت شيئًا مثل الإدخال/العنوان مثل XPath الخاص بك؟
إليك تلميحًا: انظر إلى كيفية تكرار العقدة "العنوان" الأول.
لا تنتمي إلى StackOverflow