Hallo
Seit paar Tagen beschäftige ich mich mit C#. Ich muss eine kleine winform-Applikationb mit TreeView erstellen. Als Quelle für TreeVie nutze ich folgendes XML Dokument (hier nur ein Abschnitt):
XML-Daten
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19:
| <?xml version="1.0" encoding="utf-8" ?> <storage> <documents> <doc id="" prod="Product A" name="Product A - Manual1" ... file="Product-A-Manual1.pdf" /> <doc id="" prod="Product A" name="Product A - Manual2" ... file="Product-A-Manual2.pdf" /> <doc id="" prod="Product A" name="Product A - Manual3" ... file="Product-A-Manual3.pdf" /> <doc id="" prod="Product A" name="Product A - Manual4" ... file="Product-A-Manual4.pdf" /> <doc id="" prod="Product B" name="Product B - Manual1" ... file="Product-B-Manual1.pdf" /> <doc id="" prod="Product B" name="Product B - Manual2" ... file="Product-B-Manual2.pdf" /> <doc id="" prod="Product B" name="Product B - Manual3" ... file="Product-B-Manual3.pdf" /> <doc id="" prod="Product B" name="Product B - Manual4" ... file="Product-B-Manual4.pdf" /> <doc id="" prod="Product C" name="Product C - Manual1" ... file="Product-C-Manual1.pdf" /> <doc id="" prod="Product C" name="Product C - Manual2" ... file="Product-C-Manual2.pdf" /> <doc id="" prod="Product D" name="Product D - Manual1" ... file="Product-D-Manual1.pdf" /> <doc id="" prod="Product E" name="Product E - Manual1" ... file="Product-E-Manual1.pdf" /> <doc id="" prod="Product F" name="Product F - Manual1" ... file="Product-F-Manual1.pdf" /> <doc id="" prod="Product F" name="Product F - Manual2" ... file="Product-F-Manual2.pdf" /> </documents> </storage> |
Ich habe leider kein Einfluss auf die Struktur...
Ich eine ein Problem mit den Produkten (<doc ... prod="..."/>). Wie man es oben sehen kann, für einen Produkt können mehree Dokumente vorhanden werden.
Und genau das gleiche sehe ich im TreeView:
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:
| - Produkt A -- doc1 -- doc2 -- doc3 - Produkt A -- doc1 -- doc2 -- doc3 - Produkt A -- doc1 -- doc2 -- doc3 - Produkt A -- doc1 -- doc2 -- doc3 - Produkt B -- doc4 -- doc5 -- doc6 - Produkt B -- doc4 -- doc5 -- doc6 - Produkt B -- doc4 -- doc5 -- doc6 - Produkt B -- doc4 -- doc5 -- doc6 |
Das aber entspricht meinem Plan nicht
Und mein Plan sieht so aus:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| - Produkt A -- doc1 -- doc2 -- doc3 - Produkt B -- doc4 -- doc5 -- doc6 |
Wie kann ich es erreichen?
Anbei mein Code fürs TreeView:
C#-Quelltext
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:
| private void populateTreeView() { try { TreeNode t1, t2; if (xmlFile != null && xmlTree != null) { XmlDocument doc = new XmlDocument(); doc.Load(xmlFile); XmlNodeList nodeList = doc.SelectNodes("storage/products/doc"); foreach (XmlNode node in nodeList) {
t1 = new TreeNode(node.Attributes["prod"].Value); string prodName = node.Attributes["prod"].InnerText; xmlTree.Nodes.Add(t1); foreach (XmlNode nod in node.SelectNodes("//doc[@prod=" + '"' + prodName + '"' + "]")) { t2 = new TreeNode(nod.Attributes["file"].Value); t1.Nodes.Add(t2); }
} } } catch(Exception exp) { MessageBox.Show(exp.Message); } } |
Kann mir jemand ein Tipp geben, wie kann ich es lösen?
Danke in Voraus
bb
Moderiert von
Christian S.: Code- durch XML- und C#-Tags ersetzt