Robin F.
Neues Mitglied
Hallo zusammen,
ich habe eine XML Datei die ich mit C# auslesen und weiterverarbeiten
will.
Da ich in C# nicht weiter gekommen bin, habe ich erstmal die Datei in
Python so ausgelesen wie ich es will.
Jetzt würde ich den Code gern in C# übersetzen aber ich komme hier nicht
weiter. Der Code sie aktuell wie folgt aus:
Problem ist hier jetzt das ich mit der Ausgabe
immer alle "ComplexTable" ausgebe und das zu einer Endlosschleife wird.
Ich will aber nur die "ComplexTabe" auslesen die das Attribute TableType
= Wirelist hat.
Ich denke zu wissen das es and dem xdoc.GetElementsByTagName(); liegt,
weil ich ja immer auf das gesamte Dokument zugreife aber ich kann nicht
wie in Python aus der foreach Schleife auf das XmlNode zurückgreifen. Da
kommt eine Fehlermeldung das XmlNode keine GetElementsByTagName
Definition enthält.
Hat einer einen Idee wie ich eine bestimmte ComplexTable auslesen kann?
Danke und Gruß
Robin
ich habe eine XML Datei die ich mit C# auslesen und weiterverarbeiten
will.
Da ich in C# nicht weiter gekommen bin, habe ich erstmal die Datei in
Python so ausgelesen wie ich es will.
from xml.dom import minidom xmldoc = minidom.parse("test.xml") ctables = xmldoc.getElementsByTagName("ComplexTable") for table in ctables: tabletype = table.getAttribute("TableType") subtables = table.getElementsByTagName("SubTable") if tabletype == "Wirelist": print("-" * 40) print("Wirelist") print("-" * 40) for subtable in subtables: rows = subtable.getElementsByTagName("Row") for row in rows: cells = row.getElementsByTagName("Cell") for cell in cells: text = cell.getAttribute("Text") textName = text print(textName, end=" ") print("") print("-" * 40) |
Jetzt würde ich den Code gern in C# übersetzen aber ich komme hier nicht
weiter. Der Code sie aktuell wie folgt aus:
{ class Program { static void Main(string[] args) { XmlDocument xdoc = new XmlDocument(); xdoc.Load("Test.xml"); XmlNodeList cTables = xdoc.GetElementsByTagName("ComplexTable"); foreach (XmlNode table in cTables) { string tableType = table.Attributes["TableType"].Value; Console.WriteLine(tableType); XmlNodeList subTables = xdoc.GetElementsByTagName("SubTable"); if (tableType == "Wirelist") { foreach (XmlNode subTable in subTables) { XmlNodeList rows = xdoc.GetElementsByTagName("Row"); foreach (XmlNode row in rows) { XmlNodeList cells = xdoc.GetElementsByTagName("Cell"); foreach (XmlNode cell in cells) { string text = cell.Attributes["Text"].Value; Console.Write(text + " "); } Console.WriteLine("-------------"); } } } } Console.ReadKey(); } } } |
Problem ist hier jetzt das ich mit der Ausgabe
string text = cell.Attributes["Text"].Value; |
Ich will aber nur die "ComplexTabe" auslesen die das Attribute TableType
= Wirelist hat.
Ich denke zu wissen das es and dem xdoc.GetElementsByTagName(); liegt,
weil ich ja immer auf das gesamte Dokument zugreife aber ich kann nicht
wie in Python aus der foreach Schleife auf das XmlNode zurückgreifen. Da
kommt eine Fehlermeldung das XmlNode keine GetElementsByTagName
Definition enthält.
Hat einer einen Idee wie ich eine bestimmte ComplexTable auslesen kann?
Danke und Gruß
Robin