【发布时间】:2015-04-08 07:31:10
【问题描述】:
我正在为XDocument 课程苦苦挣扎。我有一个包含“produkter”的 XML 文档,然后是一长串孩子(1000 多个)。
但是,当我调用xdoc.Descendants("produkter").Count()时,长度只有1。
我的代码:
public void Transform()
{
var path = HttpContext.Current.Server.MapPath("~/Content/Feeds/produkter-partnerid13389-Bianco.dk.xml");
XDocument xdoc = XDocument.Load(path);
foreach (XElement xe in xdoc.Descendants("produkter"))
{
if (xe == null)
{
continue;
}
var xer = xe.Element("produkt");
var productId = xer.Element("produktid").Value;
var biancoProd = getBiancoPoco(xer);
// create
var product = _productService.GetProductById(productId, supplierId);
if (product == null)
{
Product pr = new Product();
setProductByPoco(pr,biancoProd);
_productService.Create(pr);
Debug.WriteLine("Creating new product: {0}",pr.Guid);
}
// update
else
{
setProductByPoco(product, biancoProd);
_productService.Update(product);
}
}
}
Feed 内容:
<?xml version="1.0" encoding="iso-8859-1"?>
<produkter>
<produkt><forhandler>Bianco.dk</forhandler>
<kategorinavn>Til Hende - Sko - Ballerina|Til Hende - Sko - Flade sko</kategorinavn>
<produktnavn>Laced Up Shoe DJF15</produktnavn>
<produktid>532683</produktid>
<beskrivelse>Canvas sko med snørelukning og kraftig sål fra Bianco</beskrivelse>
<nypris>399.00</nypris>
<billedurl>http://www.bianco.dk/upload/images/product_image/main/13/130213.jpg</billedurl>
<vareurl>http://www.partner-ads.com/dk/klikbanner.php?bannerid=21309&partnerid=13389&htmlurl=http://www.bianco.dk/til-hende/sko/ballerina/laced-up-shoe-djf15/navy-blue/532683</vareurl>
</produkt>
<produkt><forhandler>Bianco.dk</forhandler>
<kategorinavn>Til Hende - Sko - Party|Til Hende - Sko - Stiletter|Til Hende - Sko - Pumps</kategorinavn>
<produktnavn>Nutopa Pump DJF15</produktnavn>
<produktid>532674</produktid>
<beskrivelse>Klassisk pump med medium hælhøjde og plateau fra Bianco</beskrivelse>
<nypris>449.00</nypris>
<billedurl>http://www.bianco.dk/upload/images/product_image/main/76/131376.jpg</billedurl>
<vareurl>http://www.partner-ads.com/dk/klikbanner.php?bannerid=21309&partnerid=13389&htmlurl=http://www.bianco.dk/til-hende/sko/party/nutopa-pump-djf15/nougat/532674</vareurl>
</produkt>
<produkt><forhandler>Bianco.dk</forhandler>
<kategorinavn>Til Hende - Sko - Party|Til Hende - Sko - Stiletter|Til Hende - Sko - Pumps</kategorinavn>
<produktnavn>Nutopa Pump DJF15</produktnavn>
<produktid>532674</produktid>
<beskrivelse>Klassisk pump med medium hælhøjde og plateau fra Bianco</beskrivelse>
<nypris>449.00</nypris>
<billedurl>http://www.bianco.dk/upload/images/product_image/main/82/131382.jpg</billedurl>
<vareurl>http://www.partner-ads.com/dk/klikbanner.php?bannerid=21309&partnerid=13389&htmlurl=http://www.bianco.dk/til-hende/sko/party/nutopa-pump-djf15/navy-blue/532674</vareurl>
</produkt>
<produkter>
知道我做错了什么吗?应该如何改进我的代码以便找到所有的孩子?
【问题讨论】:
标签: c# xml linq c#-4.0 linq-to-xml