Entwickler-Ecke

IO, XML und Registry - XPathDocument Namespace Frage


SharinganShuriken - Mo 26.11.12 23:45
Titel: XPathDocument Namespace Frage
Hallo liebe Community,

ich such mich schon seit Stunden dumm und dämlich nach einer Lösung für mein Problem im Netz ohne Erfolg :(

Ich will bestimmte Nodes aus einer XML Datei herauslesen ohne die ganze Datei durchzugehen, das ist mir hiermit auch sehr gut gelungen:


C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
            XPathDocument document = new XPathDocument(@"Materials.dae");

            XPathNavigator navigator = document.CreateNavigator();

            XPathNodeIterator xPathNodeIterator = navigator.Select("//author");
            xPathNodeIterator.MoveNext();

            this.Text = xPathNodeIterator.Current.Value;


Dieser Code funktioniert aber leider nur wenn ich den Namespace per Hand aus der Datei löschen oder kein Namespace vorhanden ist :(

Wo muss ich denn den Namespace hinzufügen, das dieser Code auch bei Dateien mit einem Namespace funktioniert ?

Liebe Grüße
SharinganShuriken


SharinganShuriken - Fr 30.11.12 23:33

Hallo liebe Community,

habe eine Lösung für mein Problem gefunden :D


C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
            XmlDocument document = new XmlDocument();
            document.Load(@"Materials.dae");

            XmlNamespaceManager manager = new XmlNamespaceManager(document.NameTable);
            manager.AddNamespace("COLLADA", XElement.Load(@"Materials.dae").GetDefaultNamespace().NamespaceName);

            XmlNodeList xmlNodeList = document.SelectNodes("//COLLADA:library_materials", manager);


Liebe Grüße
SharinganShuriken