The following code works, but only as long as each XML element has an "Id" attribute.
However, if the element does not have an id attribute, LINQ throws a NullReferenceException.
How to indicate that if the Id attribute is missing, just assign a zero or a space?
using System;
using System.Linq;
using System.Xml.Linq;
namespace TestXmlElement2834
{
class Program
{
static void Main(string[] args)
{
XElement content = new XElement("content",
new XElement("item", new XAttribute("id", "4")),
new XElement("item", new XAttribute("idCode", "firstForm"))
);
var contentItems = from contentItem in content.Descendants("item")
select new ContentItem
{
Id = contentItem.Attribute("id").Value
};
foreach (var contentItem in contentItems)
{
Console.WriteLine(contentItem.Id);
}
Console.ReadLine();
}
}
class ContentItem
{
public string Id { get; set; }
public string IdCode { get; set; }
}
}
source
share