18. april 2005 - 11:16
Der er
32 kommentarer og 1 løsning
hentning fra xml ?
Hej til alle. jeg har en knap på en af mine forme, og når jeg trykker på den, så skal den hente nogle ting fra forskellige xml, filer. jeg har en main xml som hedder main.xml eks. jeg skal bruge alle dem der hedder bilnr. i den er der 3 noder jeg skal bruge <bilnr> 1874 </bilnr> ............. .............. <bilnr> 1685 </bilnr> osv. i den samme mappe er der flere xml filer, disse hedder det samme som bilnr (1874.xml), (1685.xml) jeg skal så læse alle noder fra disse og gemme dem i min database. via sql insert. men ved ikke rigtigt hvordan man læser og fra xml og alt det der. er der nogen der har en god ide til noget kode ?
Annonceindlæg fra Kommando
18. april 2005 - 11:16
#1
1874 og 1685 er nøgeler i min tabel
18. april 2005 - 12:07
#2
Hi yuksel XML documents arent usually what Access developers get involved with. I would suggets that you look at the import wizard, this should be able to import XML documents into a table. Then you should be able to loop through each of the records in the table and import the other XML documents into another tables
18. april 2005 - 12:21
#3
You can also read XML documents if you have a reference to Microsoft XML. Here is a VERY SIMPLE example. Function ReadXMLDoc() Dim doc As MSXML2.DOMDocument Dim nodes As IXMLDOMNodeList Dim i As Integer On Error GoTo Proc_ERR Set doc = CreateObject("msxml2.DOMDocument") doc.async = False doc.Load "C:\scanplanTest.xml" Set nodes = doc.selectNodes("//invoice") Debug.Print nodes.length 'Number of nodes, with base = 0 For i = 0 To nodes.length - 1 Debug.Print nodes(i).Attributes.getNamedItem("date").Text Debug.Print nodes(i).childNodes(0).Text Debug.Print nodes(i).childNodes(1).Text Debug.Print nodes(i).childNodes(2).Text Debug.Print nodes(i).childNodes(3).Text Debug.Print nodes(i).childNodes(4).Text Next i Exit Function End Function
19. april 2005 - 10:20
#4
hi yuksel, can you give some feedaback, its easier to help!
19. april 2005 - 10:22
#5
jeg kan ikke finde import wizard i access ?
19. april 2005 - 10:30
#6
ved du hvor den er ?
19. april 2005 - 10:32
#7
faktisk har tingene ændret sig lidt, nu skal jeg søge efter 2 forskellige main.xml filer samtidiget,og der skal komme en pop-up og jeg skal derfra vælge en af dem, også skal den indlæse 3 felter fra den, og de felter skal tildeles nogle variabler, disse variabler skal munde ud i navne på 3 nye xml filer, og der er så disse 3 ny xml filer som skal gemmes i en tabel eller flere.
19. april 2005 - 11:13
#8
file+get external data+import menu!
19. april 2005 - 11:20
#9
jamen der, får jeg ikke noget knap eller vb kode hvor brugeren altid kan trykke og importere. den smider det bare ind i en tabel. også stopper den vist der
19. april 2005 - 11:32
#10
I think the reason why the XMl is automatically put into one or more tables is because XML files can be so complex that they can in fact contain data to more than one table. I think your best method is to use something like the XMl example I gae to import it yourself
19. april 2005 - 12:31
#11
terry denne melder fejl. Private Sub Kommandoknap0_Click() Dim doc As MSXML2.DOMDocument Dim nodes As IXMLDOMNodeList Dim i As Integer Dim a Set doc = CreateObject("msxml2.DOMDocument") doc.async = False doc.Load "E:\test\main.xml" Set nodes = doc.selectNodes("//order") Debug.Print nodes.length 'Number of nodes, with base = 0 For i = 0 To nodes.length - 1 a = list(i).bilnr(0).Text MsgBox a Next i Exit Function End Function kan du se hvad jeg har gjort galt !
19. april 2005 - 12:32
#12
min xml ser sådan ud: <ordre> <list> <bilnr>1<\bilnr> <\list> <list> <bilnr>2<\bilnr> <\list> <\order>
19. april 2005 - 14:19
#13
what error do you get? You need a reference to Microsoft XML (tools+references menu in code view)
19. april 2005 - 15:02
#14
den melder at den ikke kender sub og funct... list(i) a = list(i).bilnr(0).Text
19. april 2005 - 15:10
#15
take a CLOSE at your XML document <ordre> . </order>
19. april 2005 - 15:11
#16
this is just example it not the real, the real is working fine in internetexplore
19. april 2005 - 15:13
#17
I'll put something together and get back to you
19. april 2005 - 15:31
#18
ok :)
19. april 2005 - 15:50
#19
Function ReadXMLDoc() Dim doc As MSXML2.DOMDocument Dim nodes As IXMLDOMNodeList Dim i As Integer On Error GoTo Proc_ERR Set doc = CreateObject("msxml2.DOMDocument") doc.async = False doc.Load "E:\test\main.xml" Set nodes = doc.selectNodes("//list") Debug.Print nodes.length 'Number of nodes, with base = 0 For i = 0 To nodes.length - 1 MsgBox nodes(i).childNodes(0).Text Next i Exit Function Proc_ERR: MsgBox "Error " & Err.Number & " - " & Err.Description Resume Next End Function
19. april 2005 - 15:58
#20
jeg prøver den lige
19. april 2005 - 16:05
#21
skal jeg ændre childNodes til noget andet MsgBox nodes(i).childNodes(0).Text min xml ser sådan ud ca.: - <order> - <person> - <ide> <id>15855</id> </ide> - </person> - <person> - <ide> <id>1185</id> </ide> - </person> - </order>
19. april 2005 - 16:06
#22
Set nodes = doc.selectNodes("//list") den skal da også ændres
19. april 2005 - 16:07
#23
jeg har prøvet sådan her men det virker bare ikke ? Set nodes = doc.selectNodes("//order/person/ide") MsgBox nodes(i).id(0).Text
19. april 2005 - 16:21
#24
Set nodes = doc.selectNodes("//person") MsgBox nodes(i).childNodes(0).Text
19. april 2005 - 16:33
#25
Den hopper over denne linje selvom xml filen har ting der inde MsgBox nodes(i).id(0).Text
19. april 2005 - 16:34
#26
den hopper over denne linje MsgBox nodes(i).childNodes(0).Text
19. april 2005 - 16:40
#27
Use MY CODE not your own! MsgBox nodes(i).childNodes(0).Text
19. april 2005 - 16:41
#28
if you cant get it to work can you send your dB and XML file to eksperten@NOSPAMsanthell.dk remove NOSPAM I will look later!
19. april 2005 - 16:42
#29
ok
19. april 2005 - 18:05
#30
have you sent your dB?
20. april 2005 - 10:29
#31
.
20. april 2005 - 10:45
#32
jeg har lavet det med et andet metode, men tak for hjælpen
20. april 2005 - 10:48
#33
selv tak can we hear how you have done it? mvh Terry
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser