Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Problem med att ta ut data från XML-fil!

Postades av 2005-09-05 10:52:12 - Fredrik Linder, i forum asp - allmänt, Tråden har 8 Kommentarer och lästs av 520 personer

Jag har en kod som hämtar noder från en XML-fil för att skriva dem till en databas. Problemet är att i XML-filen finns det noder med samma namn under noden <TEST>.

Alla andra värden får jag ut utan problem men ur <NODTRE> får jag bara ut första värdet.
Hur gör jag för att få ut alla värden från dessa noder?

Tacksam för all hjälp och alla tips jag kan få!


Datan i XML-filen ser ut som följande:
<code>
<TEST>
<NODETT>Text1a</NODETT>
<NODTVA>Text2a</NODTVA>
<NODTRE>Text3a</NODTRE>
<NODTRE>Text3b</NODTRE>
<NODTRE>Text3c</NODTRE>
</TEST>
<TEST>
<NODETT>Text1a</NODETT>
<NODTVA>Text2a</NODTVA>
<NODTRE>Text3a</NODTRE>
<NODTRE>Text3b</NODTRE>
<NODTRE>Text3c</NODTRE>
</TEST>
</code>


Utdrag ur koden:
<code>
Set xml = Server.CreateObject("MSXML2.DOMDocument")
xml.Load server.mappath("filen.xml")
Set noder = xml.selectNodes("//TEST")

For i = 0 To noder.length -1
StringNODETT = noder(i).SelectSingleNode("NODETT").text
StringNODTVA = noder(i).SelectSingleNode("NODTVA").text
StringNODTRE = noder(i).SelectSingleNode("NODTRE").text
next
</code>


Svara

Sv: Problem med att ta ut data från XML-fil!

Postades av 2005-09-05 13:37:24 - Per Persson

Jag tycker att det hörs på namnet att SelectSingleNode() bara väljer ut en enda nod. Det måste finnas någon funktion för att hämta ut alla noder av en viss typ och sedan loopa över dem.


Svara

Sv:Problem med att ta ut data från XML-fil!

Postades av 2005-09-05 14:02:55 - Fredrik Linder

Precis så tänker jag också men jag vet inte hur man ska översätta detta i praktiken.

Man får snickra in en loop i loopen som tar ut värdena för varje <NODTRE> i aktuell <TEST> men hur koden ska skrivas vet jag inte.

Några förslag?


Svara

Sv:Problem med att ta ut data från XML-fil!

Postades av 2005-09-05 16:14:28 - Hendrik Olsson

Nu hittar jag inte min riktiga kod bara det jag använde för test, så se om det funkar

<code>
dim objXML
dim objLst
dim trow
dim tcol
dim i, j

set objXML = CreateObject("Microsoft.XMLDOM")
set objLst = CreateObject("Microsoft.XMLDOM")
objXML.async = false

objXML.LoadXML("test2.xml") 'strXML

response.write(GetXMLnode("testxml"))


function GetXMLnode(GetNode)
set objLst = objXML.getElementsByName(GetNode)

GetXMLnode = objLst.item(0).text
end function

function GetXMLnodes(GetNode)
'*** Levererar svaren med ; separation
set objLst = objXML.getElementsByTagName("QuantityInStock")

for i = 0 to (objLst.length - 1)
tmp = tmp & ";" & objLst.item(i).text
next

GetXMLnodes = tmp
end function

</code>


Svara

Sv: Problem med att ta ut data från XML-fil!

Postades av 2005-09-06 08:51:59 - Fredrik Linder

Jag provade din lösning Hendrik men fick det inte riktigt att fungera, tyvärr.

Problemet är att jag har först en loop som går igenom alla <TEST> taggar sedan måste jag göra en loop som går igenom alla <NODTRE> i den aktuella <TEST> taggen. Så här provade jag med din lösning.
Det kanske inge går att skapa ett nytt objekt på det sätt som jag gjort, eller?

Tacksam för all hjälp jag kan få.

Så här provade jag att implementera ditt förslag:
<code>
Set xml = Server.CreateObject("MSXML2.DOMDocument")
xml.Load server.mappath("filen.xml")
Set noder = xml.selectNodes("//TEST")

For i = 0 To noder.length -1
StringNODETT = noder(i).SelectSingleNode("NODETT").text
StringNODTVA = noder(i).SelectSingleNode("NODTVA").text
StringNODTRE = noder(i).SelectSingleNode("NODTRE").text

'Här satte jag in en loop i loopen som ska gå igenom samtliga NODTRE i aktuell TEST
StringNODTRE = ""
set nodertest = CreateObject("Microsoft.XMLDOM")
set nodertest = noder(i).getElementsByTagName("NODTRE")
For j = 0 to nodertest.length -1
StringNODTRE = StringNODTRE & vbCrLf & nodertest.item(j).text
next

next
</code>


Svara

Sv:Problem med att ta ut data från XML-fil!

Postades av 2005-09-06 14:50:19 - Jan Bulér

Jag har inte haft tillgång till utvecklingsmiljön just nu men borde du inte kunna använda något liknande detta.

<code>
Set xml = Server.CreateObject("MSXML2.DOMDocument")
xml.Load server.mappath("filen.xml")
Set noder = xml.selectNodes("//TEST")

For i = 0 To noder.length -1
Select Case noder(i).Name
Case "NODETT"
StringNODETT = noder(i).Text

Case "NODTVA"
StringNODTVA = noder(i).Text

Case "NODTRE"
StringNODTRE = StringNODTRE & vbCrLf & noder(i).Text

End Select
Next

</code>

Sen kan man ha en del funderingar på strukturen på XML-fil och på vad du ska göra i programmet men förslaget bör lösa ditt specade problem.


Svara

Sv: Problem med att ta ut data från XML-fil!

Postades av 2005-09-06 16:06:06 - Fredrik Linder

Först vill jag säga att jag varken använder den XML-struktur eller data som jag tagit med i mitt inlägg. Koden har bara samma struktur men i ett enklare format för att kunna finna en lösning på enklaste sätt.

Jag tittade på din lösning Jan och insåg att det inte går att få ut korrekt data på detta sätt.
noder(i).Name kommer nämligen vara TEST eftersom det är under denna nod som datan ska hämtas. Alltså, det är under-taggarna till taggen <TEST> som kommer plockas ut i loopen.
Problemet är att det finns flera noder/taggar under <TEST> som heter samma sak alltså <NODTRE> därför hämtar den bara den första när jag tar ut dem med:
StringNODTRE = noder(i).SelectSingleNode("NODTRE").text

Jag behöver alltså en metod för att loopa igenom alla NODTRE i den aktuella TEST-taggen som huvud-loopen loopar igenom.
Jag hoppas att ni förstår vad jag menar.

Ungefär så här:

BÖRJAN PÅ HUVUDLOOP - LOOPA IGENOM ALLA <TEST> OCH TA UT DESS UNDERVÄRDEN

TA UT NODETT TILL STRÄNG-VARIABEL
TA UT NODTVÅ TILL STRÄNG-VARIABEL

BÖJAN NODTRE-LOOP
LÄGGA IHOP ALLA NODTRE-TAGGAR TILL EN STRÄNG-VARIABEL
SLUT NODTRE-LOOP

SLUT PÅ HUVUDLOOP

Tack för att ni engagerar er i problemet allihopa!


Svara

Sv:Problem med att ta ut data från XML-fil!

Postades av 2005-09-06 16:36:41 - Ola Lindfeldt


Du har ju i princip koden som löser problemet i din första loop..

Så här bör det bli ungefär:

Set noder2 = TESTNoden.selectNodes("NODTRE")
For i = 0 To noder2.length -1
noder2(i).text 'här loopas dina <NODTRE>
Next i


Svara

Sv: Problem med att ta ut data från XML-fil!

Postades av 2005-09-08 09:34:28 - Fredrik Linder

Jag provade din metod Ola, och det ser ju ut att vara korrekt men jag får ändå följande felmeddelande:
Object required: "[object]"


Svara

Nyligen

  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo
  • 14:25 Tips på verktyg för att skapa QR-k
  • 14:23 Tips på verktyg för att skapa QR-k
  • 20:52 Fungerer innskuddsbonuser egentlig

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 602
27 953
271 705
4 500
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies