Eğer document.Elements("url")
yerine document.Root.Elements("url")
dan gidiyoruz ... yani var olmayan url
bir kök eleman arıyor olması.
bu deneyin: loc
elemanları zaten url
elemanları hemen altındaki tüm oldukları gibi, burada Descendants
kullanmadıysanız
List<string> urlList = doc.Root.Elements("url")
.Elements("loc")
.Select(x => (string) x)
.ToList();
Not.
sadeceloc
unsurları doğru olanlar, zaten olup olmadığını kullanabilirsiniz diğer alternatif adildir:
List<string> urlList = doc.Descendants("loc")
.Select(x => (string) x)
.ToList();
(I
urlList
önceden boştu tahmin ediyorum ... durumun bu tür için ben tüm işlem için LINQ kullanmayı ve bir koleksiyona ekleyen
foreach
döngülerini kaldırmayı sever.)
DÜZENLEME: Bu kod benim için çalışır. İşte kısa ama tam program:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Xml.Linq;
class Test
{
static void Main(string[] args)
{
string xml = @"<?xml version=""1.0"" encoding=""UTF-8""?>
<urlset>
<url>
<loc>element1</loc>
<changefreq>daily</changefreq>
<priority>0.2</priority>
</url>
<url>
<loc>element2</loc>
<changefreq>daily</changefreq>
<priority>0.2</priority>
</url>
</urlset>";
XDocument doc = XDocument.Parse(xml);
List<string> urlList = doc.Root
.Elements("url")
.Elements("loc")
.Select(x => (string) x)
.ToList();
Console.WriteLine(urlList.Count);
}
}
Merhaba Jon! Kodunu kullandım ama urlList hala boş! :((bir dizeden xml ayrıştırıyorum) –
@Chelsea_cole: Şimdi kontrol ediliyor ... –
@Chelsea_cole: Benim için çalışıyor - Çalıştığını gösteren tam bir program yayınladım. 'dan sonlandırıldığında, ' nu kullanın. Lütfen kodumu deneyin ve sonra ne aradığınızı ve ne aradığınızı görün… –