xml auslesen

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Hallo zusammen.

    Da ich mich mit XML-Dateien und deren Aufbau nicht wirklich auskenne, bräuchte ich eure Hilfe. Folgende XML-Aufbau wäre gewünscht:

    Quellcode

    1. <CopyStep ID="1">
    2. <Copy Option="lib" Source="blablabla" Target="diesunddas" />
    3. <Copy Option="lib" Source="blablabla2" Target="diesunddas2" />
    4. </CopyStep>
    5. <CopyStep ID="2">
    6. <Copy Option="cs" Source="blablabla" Target="diesunddas" />
    7. <Copy Option="cs" Source="blablabla2" Target="diesunddas2" />
    8. </CopyStep>

    Frage 1: Ist die Syntax so korrekt?
    Frage 2: Wie komm ich jetzt nur an die XML Elemente Copy von CopyStep mit der ID 1 zum Beispiel?

    Hoffe ihr könnt mir weiterhelfen :)
    ~ rock on ~
  • Nein, die Syntax sieht nicht gut aus. XML Knoten und Attribute schreibt man immer klein. Ansonsten ist alles ok.

    Mit welcher Sprache programmierst du denn?
    Vermutlich wird das .NET Framework irgendwelche XPATH Tools haben..

    Habe hier ein C# Beispiel gefunden: aspfree.com/c/a/.NET/Working-with-XPath-The-NET-Way/4/
    Literatur zu XPATH findest du bei selfhtml: [google]xpath selfhtml[/google]

    Quellcode

    1. using System.Xml;
    2. using System.Xml.XPath;
    3. .
    4. .
    5. XPathDocument Doc = new XPathDocument("invoice.xml");
    6. XPathNavigator navigator = Doc.CreateNavigator();
    7. XPathNodeIterator iterator = navigator.Select("//copystep[@id=1]");
    8. while (iterator.MoveNext())
    9. {
    10. Console.WriteLine(iterator.Current.Name);
    11. Console.WriteLine(iterator.Current.Value);
    12. }
    Alles anzeigen
  • Hallo zusammen.

    @d0nut: Dein Rat hat mich doch nicht weitergebracht. Trotzdem Danke.

    Für alle die auch einmal auf so ein Problem stoßen, hier ist meine Lösung:

    Quellcode

    1. <copystep id="1">
    2. <copy option="lib" source="blablabla" target="diesunddas" />
    3. <copy option="lib" source="blablabla2" target="diesunddas2" />
    4. </copystep>
    5. <copystep id="2">
    6. <copy option="cs" source="blablabla" target="diesunddas" />
    7. <copy option="cs" source="blablabla2" target="diesunddas2" />
    8. </copystep>

    Quellcode

    1. using System.Xml
    2. XmlDocument doc = new XmlDocument();
    3. doc.Load("invoice.xml");
    4. XmlElement root = doc.DocumentElement;
    5. foreach (XmlNode @daten in XmlRoot.SelectNodes("copystep[@id=1]/copy"))
    6. {
    7. Console.WriteLine(daten.Attributes[option].InnerText);
    8. Console.WriteLine(daten.Attributes[source].InnerText);
    9. Console.WriteLine(daten.Attributes[target].InnerText);
    10. }
    Alles anzeigen

    :)
    ~ rock on ~