Autor Beitrag
SharinganShuriken
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 33

Windows 7 Home Premium (64 Bit)
Visual Studio 2010 Professional, C# - SlimDX - Direct3D11
BeitragVerfasst: Fr 30.11.12 23:39 
Hallo liebe Community,

ich hoffe ich formuliere meine Frage richtig, ich versuche aus meiner XML Datei diesen Part rauszulesen:
ausblenden XML-Daten
1:
2:
3:
4:
5:
6:
7:
8:
  <library_materials>
    <material id="id01" name="m01">
      <instance_effect url="#m01-fx"/>
    </material>
    <material id="id02" name="m02">
      <instance_effect url="#m02-fx"/>
    </material>
  </library_materials>


Mit diesem Code:
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
            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);

            foreach (XmlNode item in xmlNodeList)
            {
                this.Text += item.Name;
            }


Nur leider schaffe ich es immer nur die library_materials rauszulesen und der InnerXML ist der Inhalt mit den anderen ChildNodes,
wie komme ich an die ChildNodes und deren Values/Names heran ?

Liebe Grüße
SharinganShuriken


Zuletzt bearbeitet von SharinganShuriken am Sa 01.12.12 00:44, insgesamt 1-mal bearbeitet
SharinganShuriken Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 33

Windows 7 Home Premium (64 Bit)
Visual Studio 2010 Professional, C# - SlimDX - Direct3D11
BeitragVerfasst: Sa 01.12.12 00:42 
Hallo liebe Community,

auch dieses Problem konnte ich selber Lösen :D

ausblenden XML-Daten
1:
2:
3:
4:
5:
6:
7:
8:
  <library_materials>
    <material id="id01" name="m01">
      <instance_effect url="#m01-fx"/>
    </material>
    <material id="id02" name="m02">
      <instance_effect url="#m02-fx"/>
    </material>
  </library_materials>


Einfache Lösung:
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
            XmlDocument document = new XmlDocument();
            document.Load(@"Materials.dae");

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

            XmlNodeList mainXmlNodeList = document.SelectNodes("//COLLADA:library_materials", manager).Item(0).ChildNodes;

            foreach (XmlNode childItems in mainXmlNodeList)
            {
                this.label1.Text += childItems.Attributes.Item(0).Value;
                this.label2.Text += childItems.Attributes.Item(1).Value;
            }


Schnelle Lösung
ausblenden C#-Quelltext
1:
2:
3:
4:
            this.Text = document.SelectNodes("//COLLADA:library_materials", manager).Item(0).ChildNodes.Item(0).Attributes.Item(0).Value;
            this.Text = document.SelectNodes("//COLLADA:library_materials", manager).Item(0).ChildNodes.Item(0).Attributes.Item(1).Value;
            this.Text = document.SelectNodes("//COLLADA:library_materials", manager).Item(0).ChildNodes.Item(1).Attributes.Item(0).Value;
            this.Text = document.SelectNodes("//COLLADA:library_materials", manager).Item(0).ChildNodes.Item(1).Attributes.Item(1).Value;


Liebe Grüße
SharinganShuriken