Avatar billede hh_appel Nybegynder
30. januar 2002 - 14:40 Der er 6 kommentarer og
1 løsning

Hente XML til asp-side

Hej,

Jeg bruger atomz.com til min hjemmesides søgefunktion. Jeg vil gerne have dette integreret 100% på min egen side, og vil derfor have det kørt via xml. Jeg har nået så langt, at MSXML2.FreeThreadedDOMDocument henter XML'en og er klar til at parse - men her løber jeg på problemer. De enkle ting som antallet af resultater og sådan er okay, men hvordan får jeg den til at liste alle resultaterne i en liste med

Url og titel (1. resultat)
Beskrivelse (1. resultat)

Url og titel (2. resultat)
Beskrivelse (2. resultat)

I kan se den xml-fil jeg arbejder ud fra på
http://center.atomz.com/search/?sp-q=Frankrig&sp-a=sp1001e0bd
(Som er en søgning på ordet "Frankrig". Det jeg skal have listet, er altså felterne, der ligger inde i ATOMZ-SEARCH/ATOMZ-SEARCH-RESULTS...

Avatar billede Slettet bruger
30. januar 2002 - 15:16 #1
Brug et XSLT stylesheet, alá:

<?xml version="1.0" encoding="iso-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" omit-xml-declaration="yes" indent="yes" />

    <xsl:template match="/">
        <h2>Search results:</h2>
        <p>
            <xsl:apply-templates select="ATOMZ-SEARCH/ATOMZ-SEARCH-RESULTS" />
        </p>
    </xsl:template>

    <xsl:template match="ATOMZ-SEARCH-RESULTS">
        <dl>
            <dt><xsl:value-of select="ATOMZ-SEARCH-INDEX" /> - <a href="{ATOMZ-SEARCH-URL}"><xsl:value-of select="ATOMZ-SEARCH-TITLE" /></a></dt>
            <dd><xsl:value-of select="ATOMZ-SEARCH-DESCRIPTION" /></dd>
        </dl>
    </xsl:template>
   
</xsl:stylesheet>

F.eks: (JScript ASP)

var oXML = Server.CreateObject("MSXML2.DOMDocument");
var oXSL = Server.CreateObject("MSXML2.DOMDocument");
 
oXML.async = false;
oXSL.async = false;
 
oXML.load(Server.MapPath("results.xml")); // Dit resultat fra før...
oXSL.load(Server.MapPath("stylesheet.xsl"));
 
var oHTML = oXML.transformNode(oXSL);
 
Response.Write(oHTML);


/CS
Check evt.: http://www.greystate.dk/xmlobject
Avatar billede hh_appel Nybegynder
30. januar 2002 - 16:19 #2
Jeg ville gerne hente data'ene ind i et array og så arbejde videre med dem herfra... Men det er måske en umulig drøm?
Avatar billede hh_appel Nybegynder
30. januar 2002 - 16:48 #3
Okay. Jeg tror faktisk jeg er ved at have den nu... Uden brug af xsl...
Avatar billede Slettet bruger
30. januar 2002 - 18:57 #4
Ja, det er jo "smag og behag" hvordan man vil gøre det... :-)

/CS
Avatar billede hh_appel Nybegynder
05. februar 2002 - 12:52 #5
Jeg har lavet en side, der parser xml'en og lister resultaterne.

Fordelen ved denne løsning er, at jeg nu kan lave mere avancerede visninger - for eksempel af bannere og lignende - ud fra hvilke sider, der bliver fundet... :-)

Se et eksempel på http://www.ferieliv.dk/ferieliv/soeg.asp?query=gr%E6kenland

Men du får selvfølgelig pointene for dit gode forslag... :-)
Avatar billede Slettet bruger
05. februar 2002 - 13:13 #6
Jotak - det ser godt ud. Men jeg ville sikkrt stadigvæk foretrække at bruge XSLT, der jo er skræddersyet til at tæske en XML-fil igennem. - Og hvis man bruger en XSLTemplate (compile'et stylesheet) så kan man jo smide parametre fra f.eks. QueryString ind i stylesheet'et...

MEN: Så skal man jo altså også lige sætte sig ind i det - derfor min "smag og behag" kommentar... jeg ville f.eks. nødig skulle PHP'e mig igennem noget lignende :-)

/CS
Avatar billede hh_appel Nybegynder
05. februar 2002 - 13:27 #7
Helt sikkert smag og behag. Og et spørgsmål om, at jeg var nysgerrig efter at finde ud af, hvordan man kunne gøre det i ASP. Jeg har tidligere lavet nogle enkelte ting med XSL, men havde lyst til at lære det andet også! *g*
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