---
title: "VB + XML listning"
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/72662-vb-xml-listning"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "ironhead"
published: "2003-03-31T09:14:50.000Z"
updated: "2003-04-01T16:09:32.000Z"
replies: 8
views: 367
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/dotnet/72662-vb-xml-listning"
---

# VB + XML listning

## #1 — ironhead, 2003-03-31T09:14Z

Har en XML-fil som ser ut såhär:

filelist.xml:

\----------------------------------------------------------
\<xml xmlns:o="urn:schemas-microsoft-com:office:office"\>
 \<o:MainFile HRef="../chapter_1.html"/\>
 \<o:File HRef="header.htm"/\>
 \<o:File HRef="image001.png"/\>
 \<o:File HRef="filelist.xml"/\>
\</xml\>
\----------------------------------------------------------

...och en vb-kod som ser ut såhär:

    Dim xDoc As MSXML.DOMDocument
    Set xDoc = New MSXML.DOMDocument
    
    Dim objLst As Object

 If xDoc.Load("d:\\file.xml") Then
  
   Set objLst = xDoc.getElementsByTagName("o:File")
    
    For i = 0 To objLst.length - 1
 
 'Här vill jag lista elementen    

     Next

...men jag vet inte hur jag visar värdet på objLst i for-satsen...hur skriver man?

Permalänk: https://www.webforum.nu/p/72662

## #2 — niko, 2003-03-31T09:36Z

```
Dim xDoc As MSXML2.DOMDocument
Set xDoc = New MSXML2.DOMDocument
Dim objLst As MSXML2.IXMLDOMNodeList
xDoc.async = False
xDoc.Load ("d:\filelist.xml")
If xDoc.parseError.errorCode = 0 Then
    Set objLst = xDoc.getElementsByTagName("o:File")
    For i = 0 To objLst.length - 1
        MsgBox objLst.Item(i).Attributes.getNamedItem("HRef").nodeValue
        'Här vill jag lista elementen
    Next
Else
    MsgBox xDoc.parseError.reason
End If
```

Permalänk: https://www.webforum.nu/p/994499

## #3 — ironhead, 2003-03-31T11:35Z

Tackar! Funkade ju kanon!  :)

Permalänk: https://www.webforum.nu/p/994609

## #4 — ironhead, 2003-03-31T11:47Z

felpostning!

Permalänk: https://www.webforum.nu/p/994614

## #5 — ironhead, 2003-04-01T13:33Z

Nu har jag en ny XML-fil som ser ut såhär:

\<?xml version="1.0" encoding="iso-8859-1"?\>
\<export\>
	\<databas name="databas1"\>
		\<tabell name="paket"\>
			\<fields\>
				\<socker\>blah1\</socker\>
				\<grädde\>blah\</grädde\>
				\<mjölk\>blah3\</mjölk\>
				\<mjöl\>blah4\</mjöl\>
				\<vaniljsocker\>blah5\</vaniljsocker\>
			\</fields\>
		\</tabell\>
		\<tabell name="paket2"\>
			\<fields\>
				\<skinka\>blah1\<skinka\>
				\<lök\>blah2\<lök\>
				\<margarin\>blah3\<margarin\>
				\<cocos\>blah4\<cocos\>
				\<farinsocker\>blah5\<farinsocker\>
			\</fields\>
		\</tabell\>
	\</databas\>
\</export\>

Kan man använda en liknande metod för att läsa av värdena och lägga in dessa till en SQL-server genom VB?!

Permalänk: https://www.webforum.nu/p/998272

## #6 — niko, 2003-04-01T14:18Z

Ja? Självklart kan man nysta ut data ur vilket XML-dokument som helst med de [metoder](http://msdn.microsoft.com/library/default.asp?url=/library/en-us/xmlsdk/htm/xml_mth_ac_44c3.asp) som finns i MSXML. Hur koden sen ser ut blir ju en funktion av vad man mer exakt vill göra.

Permalänk: https://www.webforum.nu/p/998307

## #7 — ironhead, 2003-04-01T14:29Z

Använde detta för att få ut värdena i subelementen:

 Set objLst = xDoc.getElementsByTagName("tabell")
  
  For i = 0 To objLst.length - 1
   MsgBox objLst.Item(i).selectSingleNode("fields").Text
  Next

...men vad använder jag för att få ut själva sub-elementet?
nu har jag värdet för fältet, men vill ju ha ut fältnamnet oxå....

Permalänk: https://www.webforum.nu/p/998323

## #8 — niko, 2003-04-01T15:32Z

Easier than you think:

```
    Set objLst = xDoc.getElementsByTagName("tabell")
    Dim myNode As MSXML2.IXMLDOMNode
    For i = 0 To objLst.length - 1
         MsgBox "Tabell: " & objLst.Item(i).Attributes.getNamedItem("name").nodeValue
        For Each myNode In objLst.Item(i).selectSingleNode("fields").childNodes
            MsgBox "Namn: " & myNode.nodeName & ", Värde: " & myNode.Text
        Next
    Next
```

Permalänk: https://www.webforum.nu/p/998390

## #9 — ironhead, 2003-04-01T16:09Z

Absolut lysande!  :birp
Tackar!

Permalänk: https://www.webforum.nu/p/998423

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/72662-vb-xml-listning
