J'ai une variable XElement nommé contenu qui comprend le code XML suivant:Quelle est la meilleure façon d'analyser manuellement un objet XElement en objets personnalisés?
<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>
Je veux maintenant simplement course à travers chacun des nœuds de niveau 1 et les objets en parse. Retour en C# 2.0 je l'utilise pour faire XmlReader, vérifier le type de nœud, et l'analyser en conséquence.
Mais quelle est la meilleure façon d'analyser les noeuds XML avec LINQ, je me attends quelque chose comme ceci:
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)...
}
}
où:
public class ContentItem
{
public string Type { get; set; }
public string IdCode { get; set; }
public XElement Content { get; set; }
}
Où exactement voulez-vous analyser? Par exemple, lorsque vous analysez le titre ... où voulez-vous aller la valeur "Contact Data"? – jrista
Lorsque j'analyse le noeud titre, "Contact Data" sera ajouté dans un UserControl en tant que TextBlock. Lorsque j'analyser un noeud de formulaire, alors le formulaire avec idCode = "contactData" sera chargé depuis la base de données et affiché, etc. –