XML auslesen, kompletter Pfad, Node nicht eindeutig

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

  • XML auslesen, kompletter Pfad, Node nicht eindeutig

    Hallo, ich bin neu hier und noch ein anfaenger in vb.net und XML.

    Mein Problem ist, das ich XML Datein habe (welche ich ueber "xmlDocument.LoadXml(PageData)" lade) mit einer ganz bestimmten Strucktur und ich einen ganz bestimmten wert ( den namen des Titels des Layers) auslesen will. Es kann sein, das es in anderen Teilen der XML auch den <TAG> Titel gibt, ich moechte aber nur alle Titel von den Layern.

    Meine XML:


    <?xml version="1.0" encoding="UTF-8" standalone="no" ?>
    <!DOCTYPE WMT_MS_Capabilities (View Source for full doctype...)>
    - <WMT_MS_Capabilities version="1.1.1">

    ......<Service>
    ......<Capability>
    ..............<Request>
    ..............<Layer queryable="0" opaque="0" noSubsets="0">
    ...................<Title>OnEarth Web Map Server</Title>
    ...................<SRS>EPSG:4326</SRS>
    ....................<SRS>AUTO:42003</SRS>
    .............<Layer queryable="0" opaque="0" noSubsets="0">
    ....................<Name>global_mosaic</Name>
    ....................<Title>WMS Global Mosaic, pan sharpened</Title>
    .........................usw....
    ..........................usw...

    Vieleicht hat ja jemand eie Idee, mein Versuch war bis jetzt:

    Titel = xmlDocument.GetElementsByTagName(
    "WMT_MS_Capabilities/Capability/Layer/Title")

    Aber leider funktioniert das nicht :( ?(
  • Hi bin studentin und mache gerade mein Praxissemester in Spanien und soll ein Programm schreiben, mit welchen man XML datein einlesen kann und diese Infos in einer DB abspeichert.

    Allerdings studiere ich kein Informatik und hab vor dem Praktikum weder was mit vb.net noch mit XML gemacht.

    Mittlerweile erreiche ich den Path Layer, allerdings bekomme ich alles unter Layer oder nur den ersten Titel, will aber in einer Schleife alle Titel auslesen, die in der XML vorhanden sind. Was ich habe:

    Quellcode

    1. Dim Navigator As XPathNavigator
    2. Navigator = xmlDocument.CreateNavigator()
    3. Dim Iterator As XPathNodeIterator = Navigator.Select("WMT_MS_Capabilities/Capability/Layer") ' alles im Layer
    4. 'Dim Iterator As XPathNodeIterator = Navigator.Select("WMT_MS_Capabilities/Capability/Layer/Title") ' nur der erste Title
    5. While Iterator.MoveNext()
    6. Titulo = Iterator.Current.Value 'xmlla_titulo(i).InnerTextidex2 = DBC.Execute("SELECT MAX(id_layer)FROM md_service_layers")
    7. id_layer = idex2 + 1
    8. Insert.InsertMDservicesLayer(id_layer, id_servicio, Titulo, nombre, Abstract, md_url, imagen_leyenda)
    9. EndWhile

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von cola85 ()

  • So ich hab jetzt endlich die Loesung gefunden :)

    Quellcode

    1. Dim Navigator As XPathNavigator
    2. Navigator = xmlDocument.CreateNavigator()Dim Iterator As XPathNodeIterator = Navigator.Select("WMT_MS_Capabilities/Capability/Layer/Layer")
    3. While Iterator.MoveNext()
    4. If Iterator.Current.MoveToChild("Title", "") Then
    5. Titulo = Iterator.Current.Value
    6. Iterator.Current.MoveToParent()
    7. End If
    8. If Iterator.Current.MoveToChild("Name", "") Then
    9. nombre = Iterator.Current.Value
    10. Iterator.Current.MoveToParent()
    11. End If
    12. End While
    Alles anzeigen