vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Zippen wie die Profis!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Fortgeschrittene
XML: Einzelne Knoten per XPath durchsuchen 
Autor: poncho
Datum: 28.05.08 12:52

Hallo Leute,

ich möchte aus einer XML-Datei bestimmte Werte auslesen. In der Datei habe ich mehrere "destination"-Knoten, die ich auslesen will und dann die Werte darin.

Für mein Problem hab ich mal eine keline testanwendung zusammengebaut:
Imports System.Xml
Imports System.Xml.XPath
 
Public Class Form1
 
    Public Function GetNodes(ByVal query As String) As List(Of XPathNavigator)
        Dim doc As New XmlDocument()
        doc.LoadXml( _
            "<?xml version=""1.0"" encoding=""utf-8"" ?>" & _
            "<job>" & _
            "  <name>test</name>" & _
            "  <guid>1E9BD421-BD6D-49E0-AEC1-D56AC308DB4B</guid>" & _
            "  <include>C:\test</include>" & _
            "  <type>Incremental</type>" & _
            "  <destination>" & _
            "    <type>local</type>" & _
            "    <path>D:\test</path>" & _
            "  </destination>" & _
            "</job>")
        Dim nav As XPathNavigator = doc.CreateNavigator()
        Dim ni As XPathNodeIterator = nav.Select(query)
        Dim list As New List(Of XPathNavigator)
        While ni.MoveNext()
            list.Add(ni.Current)
        End While
        Return list
    End Function
 
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As _
      System.EventArgs) Handles MyBase.Load
        ' Alles "destination"-Knoten suchen
        Dim d As List(Of XPath.XPathNavigator) = GetNodes("/job/destination")
        ' Aus dem ersten "destination"-Knoten den "type"-Wert auslesen
        Dim type As String = d(0).SelectSingleNode("//type").Value
        ' type soll jetzt "local" enthalten, hat aber "Incremental"
        MessageBox.Show(type)
    End Sub
End Class
Das Problem ist also, dass bei den "destination"-Knoten immer für "//type" der "type"-Knoten von einer Ebene höher zurückgebeben wird, obwohl in d(0).InnerXml nur der XML-Code dieses "destination"-Knotens drin steht.

Wie komme ich am besten an die Werte der "destination"-Knoten?
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
XML: Einzelne Knoten per XPath durchsuchen2.686poncho28.05.08 12:52
Re: XML: Einzelne Knoten per XPath durchsuchen1.133Melkor28.05.08 13:01
Re: XML: Einzelne Knoten per XPath durchsuchen967poncho28.05.08 13:05
Re: XML: Einzelne Knoten per XPath durchsuchen986Melkor28.05.08 13:16

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel