Je construis de l'automatisation de code à partir de la lecture d'un document délimité par un onglet. Ma commande est désactivée pour la structure de document xml. Quel est le problème avec ma logique? Je vois deux cas pour trouver le parent correct du noeud xml.Mauvaise commande de xmldocument
for (int lines = 0; lines < files.Length; lines++) //start
{
var firstNode = files[lines].TrimEnd('\t');
NodeNames.Add(files[lines].Replace("\t","") + lines);
levels.Add(TextTool.CountStringOccurrences(firstNode, "\t")); //first count
if (lines == 0)
{
newXml += "XmlNode " + NodeNames[lines] + "Node" + " = xmlDoc.CreateElement(\"" + files[lines].Replace("\t", "") + "\");" + System.Environment.NewLine;
//set value to empty
newXml += NodeNames[lines] + "Node" + ".InnerText = String.Empty;" + System.Environment.NewLine;
newXml += "xmlDoc.AppendChild(" + NodeNames[lines] + "Node);" + System.Environment.NewLine;
}
else{
if (levels[levels.Count - 1] > levels[levels.Count - 2])
{
//create new ele
newXml += "XmlNode " + NodeNames[lines] + "Node" + " = xmlDoc.CreateElement(\"" + files[lines].Replace("\t", "") + "\");" + System.Environment.NewLine;
//set value to empty
newXml += NodeNames[lines] + "Node" + ".InnerText = String.Empty;" + System.Environment.NewLine;
//add new ele as child to previous ele
newXml += NodeNames[lines - 1] + "Node" + ".AppendChild(" + NodeNames[lines] + "Node" + ");" + System.Environment.NewLine;
}
else
{
//create new ele
newXml += "XmlNode " + NodeNames[lines] + "Node" + " = xmlDoc.CreateElement(\"" + files[lines].Replace("\t", "") + "\");" + System.Environment.NewLine;
var lastSmallest = levels.Count - 1;
var current = levels[levels.Count - 1];
var checker = levels[levels.Count - 1];
while (checker >= current)
{
lastSmallest = lastSmallest - 1;
checker = levels[lastSmallest];
}
//set node value to empty;
newXml += NodeNames[lines] + "Node" + ".InnerText = String.Empty;" + System.Environment.NewLine;
newXml += NodeNames[checker] + "Node" + ".AppendChild(" + NodeNames[lines] + "Node" + ");" + System.Environment.NewLine;
}
}
}
Veuillez donner le XML, la sortie attendue et la sortie réelle. –
Curieux pourquoi écrivez-vous du code pour générer du code pour analyser votre entrée lorsque vous pouvez analyser l'entrée directement? –
mon nœud égal cas est cassé à regarder –