Avatar billede netsrac Praktikant
23. oktober 2001 - 21:39 Der er 23 kommentarer og
2 løsninger

Ehm fidusen med XML ?

Er der nogen speciel fidus ved XML som kan udnyttes i ASP, f.eks. hvis man skal hente lager information fra en producents side og får følgendende smidt tilbage i hovedet:

  <?xml version=\"1.0\" encoding=\"ISO-8859-1\" ?>
- <RealData>
  <MSG ID=\"10\">999 : A-0</MSG>
- <ITEM>
  <ID>395104</ID>
  <DESC>HP blækpatron til DeskJet 7X0C/815C/845C/880C/89XC/1120C & OJ117XC & T+R65/45/PSC500, 3-farvet</DESC>
  <PRICE CURRENCY=\"DKK\" />
  <QTY>1316</QTY>
  <DELDATE>23102001</DELDATE>
  </ITEM>
  </RealData>

Kan man bruge det på nogen speciel måde eller skal man bare hente det med ASPTear også sortere lidt i det ?
Avatar billede jespernaur Nybegynder
23. oktober 2001 - 22:15 #1
Søg efter XML eller XMLDOM på Microsoft. Man kan oprette et objekt, der direkte kan forstå XML teksten, og sidenhen kan man manøvrere rundt i det som en træstruktur. Det kræver lidt indsats at begribe det i begyndelsen, men det er ikke så tosset.
Avatar billede netsrac Praktikant
23. oktober 2001 - 22:18 #2
At søge på microsoft er som at gå siden igennem fra A-Z, kan du ikke give et direkte link ?
Avatar billede jespernaur Nybegynder
23. oktober 2001 - 22:32 #3
Avatar billede nute Nybegynder
23. oktober 2001 - 22:36 #4
det første du skal ha, er en XML parser. Den kan hentes her:

http://msdn.microsoft.com/downloads/default.asp?URL=/downloads/sample.asp?url=/msdn-files/027/001/596/msdncompositedoc.xml
(service pack 1: http://msdn.microsoft.com/downloads/default.asp?URL=/downloads/sample.asp?url=/msdn-files/027/001/591/msdncompositedoc.xml)

Det er mest normalt å lage et xsl (stylesheet) for å omforme ditt xml dokument til et html dokument. Dette gjøres ved hjelp av de innebyggede metoder i din parser. Se eksempel på dette her:

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/xmlsdk30/htm/xmconusingxslinasp.asp

/nute
Avatar billede netsrac Praktikant
23. oktober 2001 - 22:40 #5
De ting i henviser til er vel til at lave egne XML dokumenter ? Det jeg vil er at udnytte andres XML dokumenter i mine egne HTML/ASP dokumenter =
Avatar billede nute Nybegynder
23. oktober 2001 - 22:56 #6
netsrac >> hvem henviser du deg til ?
Avatar billede jpk Nybegynder
24. oktober 2001 - 09:00 #7
Én fordel ved XML er, at du har data og præsentation adskilt! Du kan supplere et XSL-stylesheet der viser dine data...
Avatar billede netsrac Praktikant
24. oktober 2001 - 18:20 #8
nute >> Jer begge to ?
Avatar billede nute Nybegynder
24. oktober 2001 - 18:28 #9
netsrac >> oki. Det jeg har svart på, er hvordan du kan komme igang med å transformere XML dokumenter til fx. HTML. Jeg vet ikke hvor mye du kjenner til XML, men en normal prosess kan beskrives med følgende \"regnestykke\":

XML + XSL(T) = HTML (eller annet ønskelig format)

Jeg vet jo egentlig ikke hva du ønsker med ditt dokument. Om du kun vil hente enkelte data ut fra hele filen, eller om du vil vise hele innholdet i din XML fil. Hvis du vil vise *hele* din XML fil, så vil jeg råde deg til å bruke et XSL (stylesheet) på den måten som jeg har linket til. Hvis du kun skal hente ut spesifikk data, så skal du til å parse ditt dokument via metoder i DOM API\'et.

/nute
Avatar billede netsrac Praktikant
24. oktober 2001 - 18:59 #10
Det jeg vil er med ASP at hente siden hjem også trække de data ud jeg skal bruge og vise dem som ganske normalt HTML på siden. Det jeg søger er om der er en smart måde man f.eks. kunne hente siden med et komponent også sige:

obj.getData(\"QTY\")

Hvis man altså henter ovenstående XML
Avatar billede nute Nybegynder
24. oktober 2001 - 20:11 #11
netsrac >> du er \"nødt\" til å ha en parser for å gjøre dette effektivt. Jeg har iallefall to forslag:

1) Installer den parseren jeg har linket til, opprett en .asp fil og legg inn denne kode:

<%
xmlPath = \"test.xml\"

\'LOAD THE XML
\'************
set xml = Server.CreateObject(\"MSXML2.DOMDocument.3.0\")
    xml.async = false
    xml.load(Server.MapPath(xmlPath))
    Set elemArr = xml.getElementsByTagName(\"QTY\")
    for i = 0 to elemArr.length - 1
    response.write elemArr(i).text & \"<br>\"
    next
%>

hvor \'test.xml\' er din xml fil med overnevnte data som du har postet. *MEN*...det er et problem med spesialtegn og nordiske karakterer. Hvis du fjerner alle æ, ø og å pluss alle spesialtegn, så fungerer det.

2) Du kan parse denne fil \"manuelt\" og bare hive ut ved hjelp av FileSystemObject.

/nute
Avatar billede netsrac Praktikant
24. oktober 2001 - 20:18 #12
og hvis man vil hente over http protokollen ?
Avatar billede netsrac Praktikant
24. oktober 2001 - 20:20 #13
og det fungerer ikke med æ ø og å, jeg hælder mere og mere til at hente det med ASPTear også streng manipulere med det.
Avatar billede nute Nybegynder
24. oktober 2001 - 20:20 #14
så ville jeg ha hentet filen med fx ASPTear, gemt filen lokalt, og deretter fortsatt med mitt foregående forslag...
Avatar billede netsrac Praktikant
24. oktober 2001 - 20:27 #15
Er det så ikke lige så nemt at bruge Instr() til at finde frem til det jeg skal bruge ?

Tror jeg vælger den løsning istedet, så slipper jeg også for problemer med æøå
Avatar billede nute Nybegynder
24. oktober 2001 - 20:35 #16
joda...du kan gjøre noe ála:

Set fso    = Server.CreateObject(\"Scripting.FileSystemObject\")
Set file  = fso.getFile(\"dinFil\")
Set stream = file.openAsTextStream( 1, -2 )
while NOT stream.AtEndOfStream
  str = stream.ReadLine
  index = InStr( str, \"<QTY>\" )
  if( index > 0 ) then
    startIndex = index + 4
    stopIndex  = LEN(str) - ( InStr( startIndex, str, \"</QTY>\" ) - 1 )
    response.write MID( str, startIndex, LEN( str ) & \"<br>\"
  end if
wend

/nute
Avatar billede netsrac Praktikant
24. oktober 2001 - 20:37 #17
Jep eller sortere det man får tilbage fra ASPTear :) Er jo ikke helt grøn i ASP *G* Tak for input :)
Avatar billede netsrac Praktikant
24. oktober 2001 - 20:37 #18
Jep eller sortere det man får tilbage fra ASPTear :) Er jo ikke helt grøn i ASP *G* Tak for input :)
Avatar billede netsrac Praktikant
24. oktober 2001 - 20:38 #19
Hm..Der er da vist en fejl på eksperten, vælger man Avanceret og skriver en kommentar samtidig med at man accepterer kommer den flere gange.
Avatar billede nute Nybegynder
24. oktober 2001 - 20:39 #20
jeg kjenner ikke ASPTear, så jeg vet ikke helt hva den kan gjøre.

Jeg må innrømme at jeg ikke helt forstod hvorfor *du* stilte dette spørsmålet for jeg var da sikker på at du nettopp ikke var \"helt grønn\" i ASP :-) men, men...håper du har fått noe ut av denne thread allikevel :-)

/nute
Avatar billede netsrac Praktikant
24. oktober 2001 - 20:43 #21
Stillede spm. fordi at den site jeg skal hente fra brugte XML også skulle jeg da lige se om der var noget smart med det, men det virker ikke sådan, ihvertfald ikke i dette tilfælde :)
Avatar billede jpk Nybegynder
24. oktober 2001 - 21:17 #22
XML virker skam med specialtegn, man skal bare angive hvilket tegnsæt der anvendes!
Bruger man fx ISO-8859-1, virker det med æ,ø og å...

Man kan, øverst i sit stylesheet, skrive følgende:
<?xml version=\"1.0\" encoding=\'ISO-8859-1\'?>
Avatar billede nute Nybegynder
24. oktober 2001 - 21:22 #23
jpk >> du har så rett...dumme meg opprettet xml dokumentet med UTF-8 encoding :-/
Avatar billede jens_k Nybegynder
21. november 2006 - 13:00 #24
Hey Netsrac,

Jeg står i nøjagtig samme situation som dig nu.

Har du et kode eksempel på din løsning?

Mvh

Jens_K
Avatar billede netsrac Praktikant
21. november 2006 - 19:21 #25
Damn, 5 år er gået, lad os nu se.

Kig lidt på http://www.bytescout.com/how_to_display_rss_using_asp.html
Avatar billede 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. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

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