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

Kan man hente date fra en XML-fil v.h.a. ASP?

Jeg har en kalender i XML og ville gerne v.h.a. ASP hente de 3 seneste indlæg i kalenderen ud! Kan man det? og 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 eagleeye Praktikant
26. januar 2004 - 19:43 #1
Det er denne du gerne vil hvade ud?:

- <date>
- <![CDATA[ 200307080938
  ]]>
  </date>


og så uden alt det udenom så det er :  200307080938
Avatar billede eagleeye Praktikant
26. januar 2004 - 19:57 #2
Eller er det et helt event?
Avatar billede fomse Nybegynder
27. januar 2004 - 08:30 #3
eagleeye>> Det er et helt event jeg gerne vil trække ud! Eller rettere de 3 nyeste...
Avatar billede eagleeye Praktikant
27. januar 2004 - 19:05 #4
Hvordan ved man det er de 3 nyeste??
Er det de 3 øverste?
Kan din server køre regular expression?
Avatar billede fomse Nybegynder
28. januar 2004 - 09:21 #5
Er det ikke på eventdate (eller måske date) man kan se hvilke der er de nyeste.

Jeg har ikke min egen server! webhotel hos Azero.dk! Hjælper det dig?
Avatar billede eagleeye Praktikant
28. januar 2004 - 19:12 #6
jeg ville gætte på <eventdate> er den dato en event sker..
date er umiddelbart det samme?  200307080938  dog liger det et klokkeslet.

Ud fra det er de 3 seneste indlæg er det nok date man skal kigge på.
Avatar billede eagleeye Praktikant
28. januar 2004 - 19:12 #7
Ser filen sådan ud mend linje skift??
Og JA Azero.dk er ok.
Avatar billede fomse Nybegynder
28. januar 2004 - 22:17 #8
Undskyld jeg ikke har været så flink til at melde tilbage, men jeg har rimelig travlt i øjeblikket!!
Ja der er linieskift..
Avatar billede eagleeye Praktikant
28. januar 2004 - 23:57 #9
Det er helt i orden, jeg går også i seng nu så.. :)

Prøv dette..:



<% session.LCID = 1030 %>
<html>
<head>
<title></title>
</head>
<body>
<%
'Åbner xml filen
Set fso = Server.CreateObject("Scripting.Filesystemobject")
Set fil = fso.OpenTextFile(Server.MapPath("kalender.xml"),1)
str = fil.ReadAll
fil.Close
Set fil = Nothing
Set fso = Nothing

Dim arr(1,2)
index=inStr(1,str,"  </event>",1)
do while index > 0
  stmp = mid(str,1,index)
  dato = findDato(stmp)
  if isDate(dato) then
    for i = 0 to ubound(arr,2)
      if isDate(arr(0,i)) then
        if CDate(dato) > CDate(arr(0,i)) then
          yyDato = arr(0,i) : yyStr  = arr(1,i)
          arr(0,i) = dato : arr(1,i) = stmp
          dato = yyDato : stmp = yyStr
        end if
      else
        arr(0,i) = dato : arr(1,i) = stmp
        exit for
      end if
    next
  end if
  str = mid(str,index+10)
  index=inStr(1,str,"  </event>",1)
loop

'Så har man et array med 3x2 poster (dato,tekst) og den nyeste først.

for i = 0 to ubound(arr,2)
  str = arr(1,i)

  Set regEx = New RegExp
  regEx.Global = true
  regEx.IgnoreCase = true
  regEx.Pattern = "(>\s{1,}-\s<!\[CDATA\[)"
  str = regEx.Replace(str,">¤¤¤<![CDATA[")
  regEx.Pattern = "(\n  \]\]>\s{1,}</)"
  str = regEx.Replace(str,"]]>¤¤¤¤¤¤</")
  regEx.Pattern = "(\]\]>¤¤¤¤¤¤</)(.*)(>\s{1,}-\s<)"
  str = regEx.Replace(str,"]]>¤¤¤¤¤¤¤=¤=¤=¤<")
  regEx.Pattern = "(\]\]>¤¤¤¤¤¤</)(.*)"
  str = regEx.Replace(str,"")
  Set regEx = Nothing
  index=instr(1,str,"- <id>")
  if index>0 then str = mid(str,index+3)

  arr(1,i)=str
'  Response.Write arr(0,i) & replace(Server.HTMLEncode(str),vbCrLf,"<br>") & "<br>"
next

Response.Write "<center>"
Response.Write "<table width=""70%"">"
for i = 0 to ubound(arr,2)
  writeArr = Split(arr(1,i),"]]>¤¤¤¤¤¤¤=¤=¤=¤<")
  for u = 0 to ubound(writeArr)
    lineArr = Split(writeArr(u),">¤¤¤<![CDATA[")
    Response.Write "<tr><td valign=""top"" witdh=""25%"">" & lineArr(0) & "</td><td witdh=""75%"">"
    if lcase(lineArr(0)) = "date" then
      Response.Write arr(0,i)
    else
      Response.Write lineArr(1)
    end if
    Response.Write "</td></tr>"
  next
  Response.Write "<tr><td>&nbsp;</td><td>&nbsp;</td></tr>"
next
Response.Write "</table>"
Response.Write "</center>"


%>
</body>
</html>

<%'function
function findDato(stmp)
startDato = inStr(1,stmp,"<date>",1)
slutDato = inStr(startDato+1,stmp,"</date>",1)
if slutDato > 0 and startDato > 0 then
  sDato = Mid(stmp,startDato,slutDato-startDato)
  Set regEx = New RegExp
  regEx.Global = true
  regEx.IgnoreCase = true
  regEx.Pattern = "(\d+)"
  set matches = RegEx.Execute(sDato)
  for each mach in matches
    sDato = trim(mach.value)
  next
  Set RegEx = Nothing
  sDato = mid(sDato,7,2)&"/"&mid(sDato,5,2)&"/"&mid(sDato,1,4)&" "&mid(sDato,9,2)&":"&mid(sDato,11,2)&":00"
else
  sDato = ""
end if
findDato = sDato
end function
%>
Avatar billede fomse Nybegynder
29. januar 2004 - 11:27 #10
eagleeye>>
Siden er bare blank...
Tabellen bliver oprettes med cellerne er tomme...
Avatar billede eagleeye Praktikant
31. januar 2004 - 13:00 #11
Ok, jeg begyndte at kigge på microsoft.XMLDOM og den kan læse en XML fil så prøv:


<% session.LCID = 1030 %>
<html>
<head>
<title></title>
</head>
<body>
<%
Dim arr(1,2)
Dim objXML
Set objXML = Server.CreateObject("microsoft.XMLDOM")
'Åbner filen her
objXML.Load (Server.MapPath("spm457022.xml"))

If objXML.parseError.errorcode = 0 Then
  set n=objXML.selectNodes("//event")
  for each note in n
    dato = note.getElementsByTagName("date").item(0).text
    id = note.getElementsByTagName("id").item(0).text
    shortdesc = note.getElementsByTagName("shortdesc").item(0).text
    description = note.getElementsByTagName("description").item(0).text
    link = note.getElementsByTagName("link").item(0).text
    visible = note.getElementsByTagName("visible").item(0).text
    eventdate = note.getElementsByTagName("eventdate").item(0).text
    xform = note.getElementsByTagName("xform").item(0).text
    owner = note.getElementsByTagName("owner").item(0).text
    previewdate = note.getElementsByTagName("owner").item(0).text

    dato = lavDato(dato)
   
    stmp = "ID" & "¤¤¤¤¤¤¤" & id & "¤=¤=¤=¤=¤=¤"
    stmp = stmp & "shortdesc" & "¤¤¤¤¤¤¤" & shortdesc & "¤=¤=¤=¤=¤=¤"
    stmp = stmp & "description" & "¤¤¤¤¤¤¤" & description & "¤=¤=¤=¤=¤=¤"
    stmp = stmp & "link" & "¤¤¤¤¤¤¤" & link & "¤=¤=¤=¤=¤=¤"
    stmp = stmp & "visible" & "¤¤¤¤¤¤¤" & visible & "¤=¤=¤=¤=¤=¤"
    stmp = stmp & "dato" & "¤¤¤¤¤¤¤" & dato & "¤=¤=¤=¤=¤=¤"
    stmp = stmp & "eventdate" & "¤¤¤¤¤¤¤" & eventdate & "¤=¤=¤=¤=¤=¤"
    stmp = stmp & "xform" & "¤¤¤¤¤¤¤" & xform & "¤=¤=¤=¤=¤=¤"
    stmp = stmp & "owner" & "¤¤¤¤¤¤¤" & owner & "¤=¤=¤=¤=¤=¤"
    stmp = stmp & "previewdate" & "¤¤¤¤¤¤¤" & previewdate
   
    if isDate(dato) then
      for i = 0 to ubound(arr,2)
        if isDate(arr(0,i)) then
          if CDate(dato) > CDate(arr(0,i)) then
            yyDato = arr(0,i) : yyStr  = arr(1,i)
            arr(0,i) = dato : arr(1,i) = stmp
            dato = yyDato : stmp = yyStr
          end if
        else
          arr(0,i) = dato : arr(1,i) = stmp
          exit for
        end if
      next
    end if
  next
 
Response.Write "<center>"
Response.Write "<table width=""70%"">"
for i = 0 to ubound(arr,2)
  writeArr = Split(arr(1,i),"¤=¤=¤=¤=¤=¤")
  for u = 0 to ubound(writeArr)
    lineArr = Split(writeArr(u),"¤¤¤¤¤¤¤")
    Response.Write "<tr><td valign=""top"" witdh=""25%"">" & lineArr(0) & "</td><td witdh=""75%"">"
    Response.Write lineArr(1)
    Response.Write "</td></tr>"
  next
  Response.Write "<tr><td>&nbsp;</td><td>&nbsp;</td></tr>"
next
Response.Write "</table>"
Response.Write "</center>"
 
Else
  Response.Write ("There was an error")
End If
Set objXML = Nothing
%>
</body>
</html>

<%'function
function lavDato(stmp)
stmp=replace(stmp,"-","")
stmp=trim(stmp)
if len(stmp) = 12 then
  sDato = mid(stmp,7,2)&"/"&mid(stmp,5,2)&"/"&mid(stmp,1,4)&" "&mid(stmp,9,2)&":"&mid(stmp,11,2)&":00"
end if
lavDato = sDato
end function
%>
Avatar billede fomse Nybegynder
02. februar 2004 - 06:43 #12
eagleeye>>
Det er perfekt det her:-)
Bare lige et lille spørgsmål! eventdate vises ikke som en dato som dato gør!!
Kan man lave det på samme måde? Er det noget med det her at gøre:
dato = lavDato(dato)

Har forsøgt at rode med et uden resultat, men eventdate skal vel konverteret til en dato på samme måde ik'?

Fomse:-)
Avatar billede fomse Nybegynder
02. februar 2004 - 06:44 #13
Du må jo også hellere smide et svar:-)
Avatar billede fomse Nybegynder
02. februar 2004 - 12:15 #14
Undrede også på om det er muligt at lave fx. shortdesc således et dette var et link til selve kalenderen/eventet?
Avatar billede eagleeye Praktikant
02. februar 2004 - 22:36 #15
>>Bare lige et lille spørgsmål! eventdate vises ikke som en dato som dato gør!!
Jo det kan man

>>Kan man lave det på samme måde? Er det noget med det her at gøre: dato = lavDato(dato)
Ikke helt lavDato bruges til at tjekke og lave en rigtig dato ud fra Date

>>om det er muligt at lave fx. shortdesc således et dette var et link til selve kalenderen/eventet?
Ja det er det lavet et link det kan være du selv lige skal tilpasse det lidt :) men filnavn på kalenderen, jeg tager det må være ID som bruges til det?

Her kommer koden igen det vist lettest, og så som et svar :)



<% session.LCID = 1030 %>
<html>
<head>
<title></title>
</head>
<body>
<%
Dim arr(1,2)
Dim objXML
Set objXML = Server.CreateObject("microsoft.XMLDOM")
objXML.Load (Server.MapPath("spm457022.xml"))

If objXML.parseError.errorcode = 0 Then
  set n=objXML.selectNodes("//event")
  for each note in n
    dato = Trim(note.getElementsByTagName("date").item(0).text)
    id = Trim(note.getElementsByTagName("id").item(0).text)
    shortdesc = Trim(note.getElementsByTagName("shortdesc").item(0).text)
'Her lav link til kalenderen.
    shortdesc = "<a href=""kalender.asp?id=" & id & """>" & shortdesc & "</a>"
    description = Trim(note.getElementsByTagName("description").item(0).text)
    link = trim(note.getElementsByTagName("link").item(0).text)
    visible = trim(note.getElementsByTagName("visible").item(0).text)
    eventdate = trim(note.getElementsByTagName("eventdate").item(0).text)
    'Lav eventdate til en dato som dd/mm/yyyy
    eventdate = mid(eventdate,7,2)&"/"&mid(eventdate,5,2)&"/"&mid(eventdate,1,4)
    xform = trim(note.getElementsByTagName("xform").item(0).text)
    owner = trim(note.getElementsByTagName("owner").item(0).text)
    previewdate = trim(note.getElementsByTagName("owner").item(0).text)

    dato = lavDato(dato)
   
    stmp = "ID" & "¤¤¤¤¤¤¤" & id & "¤=¤=¤=¤=¤=¤"
    stmp = stmp & "shortdesc" & "¤¤¤¤¤¤¤" & shortdesc & "¤=¤=¤=¤=¤=¤"
    stmp = stmp & "description" & "¤¤¤¤¤¤¤" & description & "¤=¤=¤=¤=¤=¤"
    stmp = stmp & "link" & "¤¤¤¤¤¤¤" & link & "¤=¤=¤=¤=¤=¤"
    stmp = stmp & "visible" & "¤¤¤¤¤¤¤" & visible & "¤=¤=¤=¤=¤=¤"
    stmp = stmp & "dato" & "¤¤¤¤¤¤¤" & dato & "¤=¤=¤=¤=¤=¤"
    stmp = stmp & "eventdate" & "¤¤¤¤¤¤¤" & eventdate & "¤=¤=¤=¤=¤=¤"
    stmp = stmp & "xform" & "¤¤¤¤¤¤¤" & xform & "¤=¤=¤=¤=¤=¤"
    stmp = stmp & "owner" & "¤¤¤¤¤¤¤" & owner & "¤=¤=¤=¤=¤=¤"
    stmp = stmp & "previewdate" & "¤¤¤¤¤¤¤" & previewdate
   
    if isDate(dato) then
      for i = 0 to ubound(arr,2)
        if isDate(arr(0,i)) then
          if CDate(dato) > CDate(arr(0,i)) then
            yyDato = arr(0,i) : yyStr  = arr(1,i)
            arr(0,i) = dato : arr(1,i) = stmp
            dato = yyDato : stmp = yyStr
          end if
        else
          arr(0,i) = dato : arr(1,i) = stmp
          exit for
        end if
      next
    end if
  next
 
Response.Write "<center>"
Response.Write "<table width=""70%"">"
for i = 0 to ubound(arr,2)
  writeArr = Split(arr(1,i),"¤=¤=¤=¤=¤=¤")
  for u = 0 to ubound(writeArr)
    lineArr = Split(writeArr(u),"¤¤¤¤¤¤¤")
    Response.Write "<tr><td valign=""top"" witdh=""25%"">" & lineArr(0) & "</td><td witdh=""75%"">"
    Response.Write lineArr(1)
    Response.Write "</td></tr>"
  next
  Response.Write "<tr><td>&nbsp;</td><td>&nbsp;</td></tr>"
next
Response.Write "</table>"
Response.Write "</center>"
 
Else
  Response.Write ("There was an error")
End If
Set objXML = Nothing
%>
</body>
</html>

<%'function
function lavDato(stmp)
stmp=replace(stmp,"-","")
stmp=trim(stmp)
if len(stmp) = 12 then
  sDato = mid(stmp,7,2)&"/"&mid(stmp,5,2)&"/"&mid(stmp,1,4)&" "&mid(stmp,9,2)&":"&mid(stmp,11,2)&":00"
end if
lavDato = sDato
end function
%>
Avatar billede fomse Nybegynder
03. februar 2004 - 06:17 #16
Takker!!
Det eneste jeg lige skal rode med er at der er flere forskellige kalendre! men det kan jeg vist godt slev finde ud af, ellers vender jeg lige tilbage:-)

Tusinde tak for hjælpen....

Fomse:-)
Avatar billede fomse Nybegynder
03. februar 2004 - 10:07 #17
Så vidt jeg har forstået så henter du alle "tags" under event v.h.a. set n=objXML.selectNodes("//event") er det korrekt?

Problemet er at der også er en Node der hedder calendar hvor der er et tag der hedder id den er jeg også nød til at indarbejde i linket ellers ved den jo ikke hvilken calender den skal hente eventet i!!! Kan du se hvad jeg mener?

XML-filen ser således ud:
<calendar><id><![CDATA[3]]></id><calname><![CDATA[Møder m.m.]]></calname><evtcount><![CDATA[5]]></evtcount><prevevtcount><![CDATA[5]]></prevevtcount><image><![CDATA[]]></image><editor><![CDATA[member]]></editor><group><![CDATA[anonymous]]></group><visible><![CDATA[on]]></visible><xform><![CDATA[]]></xform><date><![CDATA[200401261138]]></date><owner><![CDATA[Admin]]></owner>

<event>INDHOLD I EVENT<event>

</calendar>

Kan du hjælpe mig med det? Har forsøgt at lave endnu en set o=objXML.selectNodes("//calendar") og bygge det sammen men det e rikk elykkedes mig:-(
Avatar billede eagleeye Praktikant
03. februar 2004 - 18:41 #18
Et eksempel kunne være sådan her, hvor den loop'et igennem <calendar>



<% session.LCID = 1030 %>
<html>
<head>
<title></title>
</head>
<body>
<%
Dim arr(1,2)
Dim objXML
Set objXML = Server.CreateObject("microsoft.XMLDOM")
objXML.Load (Server.MapPath("spm457022.xml"))

If objXML.parseError.errorcode = 0 Then

  set cnodes = objXML.selectNodes("//calendar")
  for each cnode in cnodes
 
  calenderID = Trim(cnode.getElementsByTagName("id").item(0).text)
  calname = Trim(cnode.getElementsByTagName("calname").item(0).text)
  'Her kan der hendtes flere tags som er i <calender>
 
  Response.Write "Kalender ID : " & calenderID & " calname: " & calname

  'reset arrayet som udskrives for hver kalender.
  for i = 0 to ubound(arr,2)
    arr(0,i)="" : arr(1,i)=""
  next

  set n=cnode.selectNodes("//event")
  for each note in n
    dato = Trim(note.getElementsByTagName("date").item(0).text)
    id = Trim(note.getElementsByTagName("id").item(0).text)
    shortdesc = Trim(note.getElementsByTagName("shortdesc").item(0).text)
'Her lav link til kalenderen.
    shortdesc = "<a href=""kalender.asp?id=" & id & """>" & shortdesc & "</a>"
    description = Trim(note.getElementsByTagName("description").item(0).text)
    link = trim(note.getElementsByTagName("link").item(0).text)
    visible = trim(note.getElementsByTagName("visible").item(0).text)
    eventdate = trim(note.getElementsByTagName("eventdate").item(0).text)
    'Lav eventdate til en dato som dd/mm/yyyy
    eventdate = mid(eventdate,7,2)&"/"&mid(eventdate,5,2)&"/"&mid(eventdate,1,4)
    xform = trim(note.getElementsByTagName("xform").item(0).text)
    owner = trim(note.getElementsByTagName("owner").item(0).text)
    previewdate = trim(note.getElementsByTagName("owner").item(0).text)

    dato = lavDato(dato)
   
    stmp = "ID" & "¤¤¤¤¤¤¤" & id & "¤=¤=¤=¤=¤=¤"
    stmp = stmp & "shortdesc" & "¤¤¤¤¤¤¤" & shortdesc & "¤=¤=¤=¤=¤=¤"
    stmp = stmp & "description" & "¤¤¤¤¤¤¤" & description & "¤=¤=¤=¤=¤=¤"
    stmp = stmp & "link" & "¤¤¤¤¤¤¤" & link & "¤=¤=¤=¤=¤=¤"
    stmp = stmp & "visible" & "¤¤¤¤¤¤¤" & visible & "¤=¤=¤=¤=¤=¤"
    stmp = stmp & "dato" & "¤¤¤¤¤¤¤" & dato & "¤=¤=¤=¤=¤=¤"
    stmp = stmp & "eventdate" & "¤¤¤¤¤¤¤" & eventdate & "¤=¤=¤=¤=¤=¤"
    stmp = stmp & "xform" & "¤¤¤¤¤¤¤" & xform & "¤=¤=¤=¤=¤=¤"
    stmp = stmp & "owner" & "¤¤¤¤¤¤¤" & owner & "¤=¤=¤=¤=¤=¤"
    stmp = stmp & "previewdate" & "¤¤¤¤¤¤¤" & previewdate
   
    if isDate(dato) then
      for i = 0 to ubound(arr,2)
        if isDate(arr(0,i)) then
          if CDate(dato) > CDate(arr(0,i)) then
            yyDato = arr(0,i) : yyStr  = arr(1,i)
            arr(0,i) = dato : arr(1,i) = stmp
            dato = yyDato : stmp = yyStr
          end if
        else
          arr(0,i) = dato : arr(1,i) = stmp
          exit for
        end if
      next
    end if
  next

'Udkriv de 3 nyeste pr. kalender
Response.Write "<center>"
Response.Write "<table width=""70%"">"
for i = 0 to ubound(arr,2)
  writeArr = Split(arr(1,i),"¤=¤=¤=¤=¤=¤")
  for u = 0 to ubound(writeArr)
    lineArr = Split(writeArr(u),"¤¤¤¤¤¤¤")
    Response.Write "<tr><td valign=""top"" witdh=""25%"">" & lineArr(0) & "</td><td witdh=""75%"">"
    Response.Write lineArr(1)
    Response.Write "</td></tr>"
  next
  Response.Write "<tr><td>&nbsp;</td><td>&nbsp;</td></tr>"
next
Response.Write "</table>"
Response.Write "</center>"
 
next  'loop til næste <calender> 
 
Else
  Response.Write ("There was an error")
End If
Set objXML = Nothing
%>
</body>
</html>

<%'function
function lavDato(stmp)
stmp=replace(stmp,"-","")
stmp=trim(stmp)
if len(stmp) = 12 then
  sDato = mid(stmp,7,2)&"/"&mid(stmp,5,2)&"/"&mid(stmp,1,4)&" "&mid(stmp,9,2)&":"&mid(stmp,11,2)&":00"
end if
lavDato = sDato
end function
%>
Avatar billede fomse Nybegynder
03. februar 2004 - 20:04 #19
Det virker næste:-)
se det i aktion her: http://www.team-ccc.dk/showcalender.asp

Læg mærke til at den viser det samme 3 gange!! Her er koden som den ser ud nu:

<% session.LCID = 1030 %>
<html>
<head>
<title></title>
</head>
<body>
<%
Dim arr(1,2)
Dim objXML
Set objXML = Server.CreateObject("microsoft.XMLDOM")
objXML.Load (Server.MapPath("teamcccdb/calendar.xml"))

If objXML.parseError.errorcode = 0 Then

  set cnodes = objXML.selectNodes("//calendar")
  for each cnode in cnodes
 
  calenderID = Trim(cnode.getElementsByTagName("id").item(0).text)
  calname = Trim(cnode.getElementsByTagName("calname").item(0).text)
  'Her kan der hendtes flere tags som er i <calender>
 
  Response.Write "Kalender ID : " & calenderID & " calname: " & calname

  'reset arrayet som udskrives for hver kalender.
  for i = 0 to ubound(arr,2)
    arr(0,i)="" : arr(1,i)=""
  next

  set n=cnode.selectNodes("//event")
  for each note in n
    dato = Trim(note.getElementsByTagName("date").item(0).text)
    id = Trim(note.getElementsByTagName("id").item(0).text)
    shortdesc = Trim(note.getElementsByTagName("shortdesc").item(0).text)
'Her lav link til kalenderen.
shortdesc = "<a href=""default.asp?id=0&ACT=91&calendar=" & calenderID &"&eventid=" & id & """>" & shortdesc & "</a>"
    description = Trim(note.getElementsByTagName("description").item(0).text)
    link = trim(note.getElementsByTagName("link").item(0).text)
    visible = trim(note.getElementsByTagName("visible").item(0).text)
    eventdate = trim(note.getElementsByTagName("eventdate").item(0).text)
    'Lav eventdate til en dato som dd/mm/yyyy
    eventdate = mid(eventdate,7,2)&"/"&mid(eventdate,5,2)&"/"&mid(eventdate,1,4)
    xform = trim(note.getElementsByTagName("xform").item(0).text)
    owner = trim(note.getElementsByTagName("owner").item(0).text)
    previewdate = trim(note.getElementsByTagName("owner").item(0).text)

    dato = lavDato(dato)
   
    stmp = "ID" & "¤¤¤¤¤¤¤" & id & "¤=¤=¤=¤=¤=¤"
    stmp = stmp & "shortdesc" & "¤¤¤¤¤¤¤" & shortdesc & "¤=¤=¤=¤=¤=¤"
    stmp = stmp & "description" & "¤¤¤¤¤¤¤" & description & "¤=¤=¤=¤=¤=¤"
    stmp = stmp & "link" & "¤¤¤¤¤¤¤" & link & "¤=¤=¤=¤=¤=¤"
    stmp = stmp & "visible" & "¤¤¤¤¤¤¤" & visible & "¤=¤=¤=¤=¤=¤"
    stmp = stmp & "dato" & "¤¤¤¤¤¤¤" & dato & "¤=¤=¤=¤=¤=¤"
    stmp = stmp & "eventdate" & "¤¤¤¤¤¤¤" & eventdate & "¤=¤=¤=¤=¤=¤"
    stmp = stmp & "xform" & "¤¤¤¤¤¤¤" & xform & "¤=¤=¤=¤=¤=¤"
    stmp = stmp & "owner" & "¤¤¤¤¤¤¤" & owner & "¤=¤=¤=¤=¤=¤"
    stmp = stmp & "previewdate" & "¤¤¤¤¤¤¤" & previewdate
   
    if isDate(dato) then
      for i = 0 to ubound(arr,2)
        if isDate(arr(0,i)) then
          if CDate(dato) > CDate(arr(0,i)) then
            yyDato = arr(0,i) : yyStr  = arr(1,i)
            arr(0,i) = dato : arr(1,i) = stmp
            dato = yyDato : stmp = yyStr
          end if
        else
          arr(0,i) = dato : arr(1,i) = stmp
          exit for
        end if
      next
    end if
  next

'Udkriv de 3 nyeste pr. kalender
Response.Write "<center>"
Response.Write "<table width=""70%"">"
for i = 0 to ubound(arr,2)
  writeArr = Split(arr(1,i),"¤=¤=¤=¤=¤=¤")
  for u = 0 to ubound(writeArr)
    lineArr = Split(writeArr(u),"¤¤¤¤¤¤¤")
    Response.Write "<tr><td valign=""top"" witdh=""25%"">" & lineArr(0) & "</td><td witdh=""75%"">"
    Response.Write lineArr(1)
    Response.Write "</td></tr>"
  next
  Response.Write "<tr><td>&nbsp;</td><td>&nbsp;</td></tr>"
next
Response.Write "</table>"
Response.Write "</center>"
 
next  'loop til næste <calender> 
 
Else
  Response.Write ("There was an error")
End If
Set objXML = Nothing
%>
</body>
</html>

<%'function
function lavDato(stmp)
stmp=replace(stmp,"-","")
stmp=trim(stmp)
if len(stmp) = 12 then
  sDato = mid(stmp,7,2)&"/"&mid(stmp,5,2)&"/"&mid(stmp,1,4)&" "&mid(stmp,9,2)&":"&mid(stmp,11,2)&":00"
end if
lavDato = sDato
end function
%>
Avatar billede eagleeye Praktikant
03. februar 2004 - 20:20 #20
Jeg må indrømme jeg ikke er 100% inde i det object "microsoft.XMLDOM" :)=

Men prøv lige at rette linjen:

  set n=cnode.selectNodes("//event")


Til denne så skulle den kun tage de event som er i den valgte kalender:

  set n=cnode.getElementsByTagName("event")
Avatar billede fomse Nybegynder
03. februar 2004 - 20:25 #21
Der var den!! KANON......
Avatar billede fomse Nybegynder
04. februar 2004 - 21:42 #22
Det er bare mig igen:-) Har rodet lidt med hvis nu en af kalendrene er tomme, hvordan kan man så få den til at skrive fx. "der er ingen aktiviteter i kalenderen"!

Har forsøgt mig med noget else men kan ikke få det til at virke!!

Vi godt give dig flere point for din hjælp....

Fomse:-)
Avatar billede eagleeye Praktikant
04. februar 2004 - 21:51 #23
Tom kalender, det er når der ikker er nogle events?

Hvis der ikke er nolge events vil arr(x,x) være lig "" så man kan tjekke den føste "celle" i array om den er tom så er der ikke nogle event:
if arr(0,0) = "" then


Så prøv at rette koden som udskriver til dette:

'Udkriv de 3 nyeste pr. kalender
Response.Write "<center>"
Response.Write "<table width=""70%"">"
if arr(0,0) = "" then
  Response.Write <tr><td valign=""top"" witdh=""100%"">Kalendren er tom</td></tr>"
else 
  for i = 0 to ubound(arr,2)
    writeArr = Split(arr(1,i),"¤=¤=¤=¤=¤=¤")
    for u = 0 to ubound(writeArr)
      lineArr = Split(writeArr(u),"¤¤¤¤¤¤¤")
      Response.Write "<tr><td valign=""top"" witdh=""25%"">" & lineArr(0) & "</td><td witdh=""75%"">"
      Response.Write lineArr(1)
      Response.Write "</td></tr>"
    next
    Response.Write "<tr><td>&nbsp;</td><td>&nbsp;</td></tr>"
  next
end if
Response.Write "</table>"
Response.Write "</center>"
Avatar billede fomse Nybegynder
04. februar 2004 - 22:18 #24
Genialt!!
Havde ellers fat i noget af det rigtige havde bare lavet sådan:
if arr = "" then
Response.Write "<tr><td valign=""top"" width=""280"">Der er ingen aktivitet</td></tr>"
else.......

Altså lige lidt jeg havde overset:-) Men skal nok få lært det her ASP på et tidspunkt......

Altså
Avatar billede fomse Nybegynder
09. februar 2004 - 13:41 #25
Bare mig igen:-)
Kan man sådan rimeligt nemt få den til at vise de 2 næstkommende arrangementer (eventdate) fra d.d. (NOW)? Altså sådan at den fjerner den ene når datoen er overskredet og derefter viser den næste på listen.....

Fomse:-)
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