1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106
|
public: static void LireFichier(Graphe ^g, String ^f)
{
String ^id, ^nom;
String ^idLien, ^depart, ^arrivee, ^poids;
XmlTextReader ^reader;
try
{
reader = gcnew XmlTextReader("graphe1.xml");
reader->WhitespaceHandling = WhitespaceHandling::None;
while (reader->Read())
{
// Attrape le premier des elements
if (reader->NodeType == XmlNodeType::Element && reader->Name == "Sommet")
{
if (reader->Name == "Sommet")
{
// cherche tous les noeuds enfants au premier element
while (reader->NodeType != XmlNodeType::EndElement) // </sommet> ?
{
reader->Read();
// Regarde si le noeud correspond à ce que je veux
if (reader->Name == "id" && (reader->NodeType != XmlNodeType::EndElement))
{
reader->Read();
if (reader->NodeType == XmlNodeType::Text)
Console::WriteLine("valeur id: {0}", reader->Value);
id = reader->Value;
Console::WriteLine("valeur id version String: {0}", id);
}
if (reader->Name == "nom" && (reader->NodeType != XmlNodeType::EndElement))
{
reader->Read();
if (reader->NodeType == XmlNodeType::Text)
Console::WriteLine("valeur nom: {0}", reader->Value);
nom = reader->Value;
Console::WriteLine("valeur de nom version String: {0}", nom);
}
}
Sommet ^s = gcnew Sommet(id,nom);
Console::WriteLine("id et nom du sommet : {0} : {1}", s->getId, s->getNom);
g->addSommet(s);
Console::WriteLine("\nnbr de sommet : {0}\n", g->nbrSommet());
}
}
// Attrape le premier des elements
if (reader->NodeType == XmlNodeType::Element && reader->Name == "lien")
{
if (reader->Name == "lien")
{
// cherche tous les noeuds enfants au premier element
while (reader->NodeType != XmlNodeType::EndElement)
{
reader->Read();
// Regarde si le noeud correspond à ce que je veux
if (reader->Name == "id" && (reader->NodeType != XmlNodeType::EndElement))
{
reader->Read();
if (reader->NodeType == XmlNodeType::Text)
Console::WriteLine("valeur id lien: {0}", reader->Value);
idLien = reader->Value;
Console::WriteLine("valeur idLien: {0}", idLien);
}
if (reader->Name == "depart"&& (reader->NodeType != XmlNodeType::EndElement))
{
reader->Read();
if (reader->NodeType == XmlNodeType::Text)
Console::WriteLine("valeur depart : {0}", reader->Value);
depart = reader->Value;
Console::WriteLine("valeur depart: {0}", depart);
}
if (reader->Name == "arrivee"&& (reader->NodeType != XmlNodeType::EndElement))
{
reader->Read();
if (reader->NodeType == XmlNodeType::Text)
Console::WriteLine("valeur arrivée: {0}", reader->Value);
arrivee = reader->Value;
Console::WriteLine("valeur arrivee: {0}", arrivee);
}
if (reader->Name == "poids"&& (reader->NodeType != XmlNodeType::EndElement))
{
reader->Read();
if (reader->NodeType == XmlNodeType::Text)
Console::WriteLine("valeur poids : {0}", reader->Value);
poids = reader->Value;
Console::WriteLine("valeur poids: {0}", poids);
}
//Successeur::Successeur(idLien, depart, arrivee, poids);
//Successeur suc = gcnew Successeur(idLien, depart, arrivee, poids);
}
}
}
}
}
catch(Exception ^e)
{
Console::WriteLine("Erreur -- {0}", e->Message);
}
finally
{
reader->Close();
}
} |
Partager