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
| private static int node_count = 0;
private static bool node_following = false;
private static void TraverseNodes(XmlNode node)
{
foreach (XmlNode child_node in node.ChildNodes)
{
if()// get next child_node folowing with bool node_following
{
// que faire ici pour repartir depuis le noeud suivant
}
//Console.WriteLine("ici");
try
{
if (child_node.Name == "System")
{
//XmlNodeList childs_node = node.ChildNodes;
foreach (XmlNode block_node in child_node.ChildNodes)
{
if (block_node.Name == "Block") // get All <Block> node to have Inport,Outport,TriggerPorte,Susbystem
{
switch (block_node.Attributes["BlockType"].Value)
{
case ("Inport"):
Console.WriteLine(block_node.Attributes["BlockType"]);
//system.inport.Add(node.Attributes["Name"].Value);
break;
case ("Outport"):
//system.outport.Add(node.Attributes["Name"].Value);
break;
case ("TriggerPort"):
//system.triggerport.Add(node.Attributes["Name"].Value);
break;
case ("SubSystem"):
//system.subsystem.Add(node.Attributes["Name"].Value);
Console.WriteLine("here");
node_count++;
TraverseNodes(block_node); // get subsytem of subsystem
break;
default:
break;
}
}
}
}
else if (child_node.HasChildNodes) // if no <System> node among them
{
node_count++;
TraverseNodes(child_node);
}
else if (!child_node.HasChildNodes)
{
node_following = true;
TraverseNodes(node.ParentNode);//search neighbor node
}
}
catch (Exception ex)
{
MessageBox.Show("Error in reading XML", "xmlError", MessageBoxButtons.OK);
}
}
} |