Thema Datum  Von Nutzer Rating
Antwort
22.09.2015 21:53:53 Gast4768
NotSolved
24.09.2015 10:32:47 Gast1520
NotSolved
29.09.2015 18:41:10 Gast78432
NotSolved
02.10.2015 18:38:16 Gast8544
NotSolved
Rot Mit VBA in einer XML suchen
03.10.2015 21:31:53 GastO815
NotSolved

Ansicht des Beitrags:
Von:
GastO815
Datum:
03.10.2015 21:31:53
Views:
821
Rating: Antwort:
  Ja
Thema:
Mit VBA in einer XML suchen

Nochmal von vorn - diesmal korrekt:

Option Explicit

Private Sub Bsp()
  
  Dim xmlNode       As MSXML2.IXMLDOMNode
  Dim strFilename   As String
  Dim strMyXPath    As String
  
  strFilename = "D:\example.xml"
  
  With New MSXML2.DOMDocument60
    
    .async = False
    .validateOnParse = True
    
    Call .setProperty("SelectionLanguage", "XPath")
    
    If Not .Load(strFilename) Then
      With .parseError
        Call Err.Raise(.ErrorCode, , .srcText & vbNewLine & vbNewLine & .reason)
      End With
    End If
    
    strMyXPath = "/telefonliste/datensatz[name='Tommy']/telefon"
    Set xmlNode = .SelectSingleNode(strMyXPath)
    
    If Not xmlNode Is Nothing Then
      Call MsgBox(strMyXPath & " = '" & xmlNode.Text & "'", vbInformation)
    Else
      Call MsgBox("'" & strMyXPath & "' ergab kein Ergebnis.", vbExclamation)
    End If
    
  End With
  
End Sub

 

example.xml

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<telefonliste xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
	<datensatz>
		<name>Peter</name>
		<telefon>3060</telefon>
	</datensatz>
	<datensatz>
		<name>Tommy</name>
		<telefon>1600</telefon>
	</datensatz>
	<datensatz>
		<name>Wilhelm</name>
		<telefon>1500</telefon>
	</datensatz>
</Telefonliste>

 

Beachte bitte ...

  1. ... das standalone nur 'yes' oder 'no' annehmen kann - der Wert 'true' ist falsch!
  2. ... bei XML kommt es auf die Groß-/Kleinschreibung an. Entscheide dich also für eines von beiden, ansonst bekommst du arge Probleme (üblich ist die Kleinschreibung).

Hier gibt es u.a. mehr zu Thema XPath zu lesen.

 

Gruß


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
22.09.2015 21:53:53 Gast4768
NotSolved
24.09.2015 10:32:47 Gast1520
NotSolved
29.09.2015 18:41:10 Gast78432
NotSolved
02.10.2015 18:38:16 Gast8544
NotSolved
Rot Mit VBA in einer XML suchen
03.10.2015 21:31:53 GastO815
NotSolved