У меня есть переменная XElement с именем content , которая состоит из следующего XML:
<content>
<title>Contact Data</title>
<p>This is a paragraph this will be displayed in front of the first form.</p>
<form idCode="contactData" query="limit 10; category=internal"/>
<form idCode="contactDataDetail" query="limit 10; category=internal">
<title>Contact Data Detail</title>
<description>This is the detail information</description>
</form>
</content>
Теперь я хочу просто пройти через каждый из узлов уровня 1 и разобрать их в объекты. В C # 2.0 я использую это для XmlReader , проверяю тип узла и анализирую его соответственно.
Но каков наилучший способ анализа узлов XML с помощью LINQ , я ожидал бы что-то вроде этого:
var contentItems = from contentItem in pageItem.content.DescendantNodes()
select new ContentItem
{
Type = contentItem.Element()
};
foreach (var contentItem in contentItems)
{
switch (contentItem.Type)
{
case "title":
...(parse title)...
case "p":
...(parse p)...
case "form":
...(parse form)...
}
}
где:
public class ContentItem
{
public string Type { get; set; }
public string IdCode { get; set; }
public XElement Content { get; set; }
}