Der Namespace System.Xml.XPath

Der Namespace System.Xml.XPath

Eine direkte Arbeit mit XPath ist auch im .NET-Namespace System.Xml.XPath möglich und daher über VisualBasic.NET ansprechbar. Die XPathDocument-Klasse instanziiert hier einen XPathNavigator, der über seine Compile-Methode wiederum eine XPathExpression instanziiert.

Der Namespace System.Xml.XPath

Abhängig vom jeweiligen XPathResultType, können wir hier eine differenzierte VisualBasic.NET-Logik aufbauen. Handelt es sich beispielsweise nicht um einen Einzelwert, sondern einen NodeSet, so kann eine Schleife über einen XPathNodeIterator laufen, um die Werte wunschgemäß auszugeben.


 Public Const xmlurl As String = "C:\wg\Ort_Elemente.xml"
 Public Sub xpathdemo()
  Try
   Dim xpathstr As String = "/Orte/Ort/Mensch/vorname"
   Dim xpd As New XPath.XPathDocument(xmlurl)
   Dim nav As XPath.XPathNavigator = xpd.CreateNavigator
   Dim query As XPath.XPathExpression = nav.Compile(xpathstr)
   Console.WriteLine("query.ReturnType: {0}", query.ReturnType)
   If query.ReturnType = XPath.XPathResultType.Number Then
    Try
     Dim erg As Double 
     erg = Double.Parse(nav.Evaluate(query).ToString)
    Catch ex As Exception
     Console.WriteLine(ex.Message)
    End Try
   ElseIf query.ReturnType = XPath.XPathResultType.String Then
    Dim erg As String = nav.Evaluate(query).ToString
    Console.WriteLine("{0}: {1}", query.Expression, erg)
   ElseIf query.ReturnType = XPath.XPathResultType.NodeSet Then
    Dim iteraror As XPath.XPathNodeIterator = nav.Select(xpathstr)
    For Each n As XPath.XPathNavigator In iteraror
     Console.WriteLine("Node: {0}", n.OuterXml)
    Next
   End If
  Catch ex As Exception
   Console.WriteLine(ex.Message)
  End Try
 End Sub

wg / 7. November 2017



Fragen? Anmerkungen? Tips?

Bitte nehmen Sie Kontakt zu mir auf:

Vorname
Nachname
Mailadresse







Vielen Dank für Ihr Interesse an meiner Arbeit.


V.i.S.d.P.: Wilfried Grupe * Klus 6 * 37643 Negenborn

Mobil: 0151. 750 360 61 * eMail: info2018@wilfried-grupe.de

www.wilfried-grupe.de/XPath_VBNET.html