XML Schema, SelectNodes
-
Hallo Zusammen
ich habe mir eine xml Datei und eins xsd Datei (dazugehörige XML Schema)
erzeugt. Jetzt möchte ich mit Hilfe der "SelectNodes" nur bestimmte
Elemente auswählen.string text; XmlTextReader xmlReader = new XmlTextReader(Pfad); XmlDocument XmlDoc = new XmlDocument(); XmlDoc.Load(xmlReader); XmlNode docElement = XmlDoc.DocumentElement; // Ohne XML Schema // XmlNodeList result = // docElement.SelectNodes // ("/Meine/Daten[Nummer/text()=1]/Nummer/text()"); XmlNodeList result = docElement.SelectNodes("descendant::Daten[Nummer='1']"); foreach (XmlNode n in result) { text = n.Value; System.Windows.Forms.TreeNode treeNode = TV.Nodes.Add(text); }
Wenn ich die XML Bindung mit der xsd-Datei löse, kann ich die Daten lesen (wie im Quellcode).
Füge ich der XML Datei die XML Schema Namespace hinzu funktioniert das ganze nicht mehr?Wie muss der Abfrage Pfad bei einer XML Datei mit einer XML Schema-Datei aussehen.
-
Hallo
habe das Problem gelöst. Der dazugeförige Quellcode sieht folgendermaßen aus:
string text; XmlDocument doc = new XmlDocument(); doc.Load(Pfad); XmlNamespaceManager nsmgr = new XmlNamespaceManager(doc.NameTable); // Namespace in XML Datei "xsi" nsmgr.AddNamespace("xsi", "MeinXMLSchma.xsd"); XmlNodeList result = doc.SelectNodes("/xsi:Daten[xsi:Nummer='1']//xsi:Nummer", nsmgr); foreach (XmlNode n in result) { text = n.Value; System.Windows.Forms.TreeNode treeNode = TV.Nodes.Add(text); }