Einzelnen Beitrag anzeigen

Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#2

Re: [C#] Wie XML-Graph einlesen?

  Alt 9. Aug 2009, 15:18
Ich denke, da bist du mit LINQ 2 XML schneller am Ziel und brauchst vor allem kein "Zwischen-Model" des Graphen. So etwa:
Code:
class Node
{
   public IList<Edge> Edges { get; private set; }
   public string Description { get; set; }

   public Node()
   {
      Edges = new List<Edge>();
   }
}

class Edge
{
   //public Node Source { get; set; } //?
   public Node Target { get; set; }
   ...
}

var root = XElement.Load(...);
var nodes = new Dictionary<int, Node>();

foreach (XElement nodeEl in root.Elements("node"))
   nodes.Add((int)nodeEl.Element("id"), new Node {
      Description = nodeEl.Element("description").Value
   });

foreach (XElement edgeEl in root.Elements("edge"))
   nodes[(int)edgeEl.Element("source_id")].Edges.Add(new Edge {
      Target = nodes[(int)edgeEl.Element("source_id")],
      ...
   };
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat