Avatar billede fomse Nybegynder
26. januar 2004 - 11:49 Der er 8 kommentarer og
1 løsning

Hente 3 seneste poster?

Jeg har en kalender i XML og ville gerne hente de 3 seneste indlæg i kalenderen ud i en anden fil! hvordan gør jeg?

Her er et udsnit at calendar.xml:
<?xml version="1.0" ?>
- <eventcalendar>
- <event>
- <id>
- <![CDATA[ 1
  ]]>
  </id>
- <shortdesc>
- <![CDATA[ Fællestræning
  ]]>
  </shortdesc>
- <description>
- <![CDATA[
Fællestræning tirsdag d. 8. juli 2003 kl. 17.00<br>
Mødested hjørnet af Jagtvej/Tagensvej.<br>
<br>
Vi ses<br>
<br>
Fomse:-)

  ]]>
  </description>
- <link>
- <![CDATA[
  ]]>
  </link>
- <visible>
- <![CDATA[ on
  ]]>
  </visible>
- <eventdate>
- <![CDATA[ 20030708
  ]]>
  </eventdate>
- <xform>
- <![CDATA[
  ]]>
  </xform>
- <date>
- <![CDATA[ 200307080938
  ]]>
  </date>
- <owner>
- <![CDATA[ Admin
  ]]>
  </owner>
- <previewdate>
- <![CDATA[
  ]]>
  </previewdate>
  </event>..................
Avatar billede thor.ostergaard Nybegynder
26. januar 2004 - 12:27 #1
er det "bare" de 3 første/sidste elementer i xml dokumentet eller skal det baseres på <date> eller <eventdate>?
Avatar billede fomse Nybegynder
26. januar 2004 - 12:30 #2
Det skal vel egentlig baseres på eventdate, vil jeg tro! Men bare du kan hjælpe mig med proceduren så finder jeg nok selv ud af resten:-)
Avatar billede thor.ostergaard Nybegynder
26. januar 2004 - 12:54 #3
Skal det kodes i XSL, ASP, ASP.NET eller ?
Avatar billede fomse Nybegynder
26. januar 2004 - 12:58 #4
Hmm! Ville egentlig helst have det i ASP men kan du vise mig det i XLS også så er det perfekt?
Avatar billede thor.ostergaard Nybegynder
26. januar 2004 - 16:48 #5
Her har du et xsl stylesheet, der tager de 3 første events fra dit xml dokument:

<?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" indent="yes" encoding="ISO-8859-1" cdata-section-elements="id shortdesc description link visible eventdate xform date owner previewdate"/>
    <xsl:template match="/eventcalendar">
        <eventcalendar>
            <xsl:for-each select="event">
                <xsl:if test="position()&lt;4">
                    <xsl:copy-of select="."/>
                </xsl:if>
            </xsl:for-each>
        </eventcalendar>
    </xsl:template>
</xsl:stylesheet>
Avatar billede thor.ostergaard Nybegynder
26. januar 2004 - 16:50 #6
Og her er lidt kode, der kan kombinere dit xml og dit xsl:
  Dim xmlDocument, xml, xslDocument, xsl

  ' Set the source and style sheet locations here
  xmlDocument = Request.ServerVariables("APPL_PHYSICAL_PATH") +
"\IISDIR\Template\xmlFile.xml"
  xslDocument = Request.ServerVariables("APPL_PHYSICAL_PATH") +
"\IISDIR\Template\xslFiley.xsl"

  ' Load the XML
  Set xml = Server.CreateObject("Microsoft.XMLDOM")
  xml.async = false
  xml.load(xmlDocument)

  ' Load the XSL
  Set xsl = Server.CreateObject("Microsoft.XMLDOM")
  xsl.async = false
  xsl.load(xslDocument)

  Response.Write(xml.transformNode(xsl))
Avatar billede thor.ostergaard Nybegynder
26. januar 2004 - 16:53 #7
Man kan også vælge at programmere det hele i DOM, men det er svært at vurdere, hvad der er smartest - det afhænger lidt af, hvad du skal bruge det til.
Du kan læse mere om xsl her: http://www.kursusmaterialer.dk/XML%20formatering%20og%20transformation/Velkommen/Intro.aspx.
Avatar billede thor.ostergaard Nybegynder
26. januar 2004 - 16:54 #8
Det er vel også en slags svar...
Avatar billede fomse Nybegynder
03. februar 2004 - 10:55 #9
Takker!! Det virkerde perfekt, men jeg valgte dog at bruge en løsning i ASP i stedet for:-)
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