2016-06-05 21 views
3

Ich möchte nur den Inhalt von user list="default" oder user list="otherListName" aus einer Variablen auswählen. Wenn meine Variable gleich default ist, möchte ich den Inhalt von user list="default" auswählen. Mit dem Inhalt meine ich:Wählen Sie in XML zu einer Liste

<list nom="Nom" description="Description" image="no_image.png"/> 

Und ich möchte diese Inhalte in eine Liste analysieren zu

<list nom="" description="" image=""/> 
<list nom="" description="" image=""/> 


<?xml version="1.0" encoding="utf-8"?> 
<database> 
    <user list="default"> 
     <list nom="Nom" description="Description" image="no_image.png"/> 
    </user> 
    <user list="otherListName"> 
     <list nom="" description="" image=""/> 
     <list nom="" description="" image=""/> 
    </user> 
</database>` 

Ich hoffe, dass meine Frage verständlich ist.

+0

In diesem Arbeitsbeispiel erfahren Sie, wie Sie mithilfe von linq Daten aus Xml abrufen und eine Liste erstellen können. https://dotnetfiddle.net/FkyqvA –

Antwort

3

können Sie LINQ-to-XML verwenden, zum Beispiel unter der Annahme, dass doc eine XDocument Variable die ursprüngliche XML enthält:

var listName = "default"; 
var result = doc.Root 
       .Elements("user") 
       .Where(o => (string)o.Attribute("list") == listName) 
       .Elements("list"); 

Siehe Live-Demo in dotnetfiddle:

var raw = @"<?xml version='1.0' encoding='utf-8'?> 
<database> 
    <user list='default'> 
     <list nom='Nom' description='Description' image='no_image.png'/> 
    </user> 
    <user list='otherListName'> 
     <list nom='' description='' image=''/> 
     <list nom='' description='' image=''/> 
    </user> 
</database>"; 
var doc = XDocument.Parse(raw); 

var listName = "default"; 
var result = doc.Root 
       .Elements("user") 
       .Where(o => (string)o.Attribute("list") == listName) 
       .Elements("list"); 

foreach(var r in result) 
{ 
    Console.WriteLine(r.ToString()); 
} 

Ausgabe: (für listName = "default")

<list nom="Nom" description="Description" image="no_image.png" /> 
Verwandte Themen