EveryMA Mester
04. december 2019 - 19:14 Der er 8 kommentarer og
1 løsning

ASP og XML: Attribute

Hej.

Jeg har læst mig frem til, at det rigtige ordvalg er attribute i denne sammenhæng. Jeg har en XML fil hvor jeg skal hive data ud fra gennem ASP. Det er klaret.

Der opstår komplikationer når jeg skal dykkere dybere ind i xml filen som forklaret her:

<sider>
  <side id="1">
    <navn>Side 1</navn
    <by>København</by>
<indhold>
<el navn="el">
  <value>25</value>
</el>
<el navn="ve">
  <value>30</value>
</el>
</indhold>
</side>
</sider>

Jeg kan få alle data ud, undtagen "el". Hvordan peger jeg på side > indhold > el > NAVN og får VALUE skrevet ud?
EveryMA Mester
04. december 2019 - 19:17 #1
Glemte at tilføje hvad jeg allerede har (som virker):

Set objXMLDoc = Server.CreateObject("MSXML2.DOMDocument.3.0")   
objXMLDoc.async = False   
objXMLDoc.load Server.MapPath("xml.xml")


Set NodeList = objXMLDoc.getElementsByTagName("product")

For i = 0 to NodeList.length -1

  Set navn = objXMLDoc.getElementsByTagName("navn")(i)


med dette får jeg outputtet København hvilket er rigtigt. Men jeg kan ikke få den til at pege helt ned til den bestemte value
arne_v Ekspert
04. december 2019 - 20:32 #2
Utestet:

Set sider = doc.SelectNodes("//side")
For Each side in sider
    by = side.SelectSingleNode("navn/text()").NodeValue
    Set els = side.SelectNodes("el")
    For Each el in els
        navn = el.SelectSingleNode("@navn").NodeValue
        value = el.SelectSingleNode("value/text()").NodeValue
    Next
Next
EveryMA Mester
04. december 2019 - 22:34 #3
Hej Arne

Den giver blot en fejl 500

den fortæller ikke hvor den fejler
EveryMA Mester
04. december 2019 - 22:38 #4
den skal specifikt udskrive indholdet af value under side > indhold > el > el

Altså "el" i el skal være outputtet
arne_v Ekspert
05. december 2019 - 03:40 #5

<%
Set objXMLDoc = Server.CreateObject("MSXML2.DOMDocument.3.0") 
objXMLDoc.async = False 
objXMLDoc.load Server.MapPath("xml.xml")
Set sider = objXMLDoc.SelectNodes("//side")
For Each side in sider
    by = side.SelectSingleNode("navn/text()").NodeValue
    Response.Write "by=" & by & "<br>"
    Set els = side.SelectNodes("indhold/el")
    For Each el in els
        navn = el.SelectSingleNode("@navn").NodeValue
        value = el.SelectSingleNode("value/text()").NodeValue
        Response.Write "navn=" & navn & "<br>"
        Response.Write "value=" & value & "<br>"
    Next
    Set els = Nothing
Next
Set side = Nothing
Set ObjXMLDoc = Nothing
%>


udskriver:

by=København
navn=el
value=25
navn=ve
value=30

hos mig.

(efter at jeg har tilfoejet den manglende > i XML input)
EveryMA Mester
05. december 2019 - 17:47 #6
Tusind tak Arne.

Dog er der lige en men... den udskriver det perfekt som du beskriver.

Men jeg vil gerne kunne specificere hvilken 'el' den skal udskrive (el eller ve eller en tredje hvis jeg tilføjer det)

Lige nu udskriver den begge, som ligger i xml-filen. Og den tredje, hvis jeg tilføjer den

har prøvet i følgende linje uden held :

        navn = el.SelectSingleNode("@navn/el").NodeValue

for at den finder "navnet" med "el" og kun udskriver det
arne_v Ekspert
05. december 2019 - 19:07 #7
Set els = side.SelectNodes("indhold/el[@navn='el']")
EveryMA Mester
07. december 2019 - 19:23 #8
Der var den. Mange tak for hjælpen!
arne_v Ekspert
28. december 2019 - 18:05 #9
Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links

Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester





Premium
Test: Apples nye iPhone er bygget til fart og stil: Så gode er iPhone 12 og iPhone 12 Pro
Computerworld tester: IPhone 12 og iPhone 12 Pro er bygget til fart og til at se godt ud. Varen leveres stilsikkert, men noget er overset i farten.
Computerworld
Salling Group lukker stor online-satsning efter kun et år
Millionsatsningen Fillop lukker ved årets udgang. I stedet er supermarkeds-giganten Salling Group nu på vej med en række helt nye online-satsninger, der er affødt af coronakrisen.
CIO
Podcast: Hos Viking Life-Saving Equipment er it gået fra at være backend til at være noget, som kunderne spørger aktivt efter
Podcast, The Digital Edge: Viking leverer en stadig større del af deres produkt som en tjeneste. Som en del af tjenesten tager Viking ansvar for sikkerheden ved at levere, dokumentere og vedligeholde det nødvendige sikkerhedsudstyr. Hør hvordan Henrik Balslev senior digital director hos Viking har løftet den opgave.
Job & Karriere
Regner din ferie væk? Brug tiden på at søge en af disse otte stillinger, der er ledige netop nu
Det sjasker ned over hele Danmark. Du kan bruge de våde sommerdage på at søge et af disse otte job, der er ledige lige nu.
White paper
Sådan outsourcer du effektivt – og undgår fælderne
Nogle outsourcer for at minimere omkostningsniveauet, andre for at skaffe ressourcer og spidskompetencer, der er svære at skaffe lokalt – eller af en helt tredje årsag. Der er dog talrige forhold, der er gode at afdække, før man overhovedet begynder at lede en outsourcingudbyder. Man skal klarlægge egne projektbehov samt de spørgsmål og krav, man vil stille samt indsamle viden og erfaringer om, hvordan samarbejdet indledes, drives og styres optimalt. Dertil skal man kende til de hyppigste faldgruber, der kan få et ellers lovende outsourcingsamarbejde til at køre i grøften.