Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


större än dagens datum i xsl?

Postades av 2010-05-23 20:09:26 - Magnus Karlsson, i forum xml, Tråden har 16 Kommentarer och lästs av 2446 personer

Jag tänkte köra XML som databas.

Saken är den att jag i XML filen tänkt ha flera noder som alla har en <datum>-tagg där jag sätter ett datum, tex 2010-05-14.
Jag vill i xsl sedan kolla så att datumet i respektive tagg inte är mindre än dagens datum, dvs att datumet i XML filen inte har varit än.

Går detta att fixa detta med xsl? och om hur...

Tack på förhand
Magnus


Svara

Sv: större än dagens datum i xsl?

Postades av 2010-05-24 12:01:28 - Anders Sundqvist

Har inte testat på datum, men compare(comp1,comp2) kanske kan användas?


Svara

Sv:större än dagens datum i xsl?

Postades av 2010-05-24 13:39:21 - Magnus Karlsson


Det jag vill är att <xsl:if match=".[DATUM>'2010-05-24']"> alltid skall vara dagens datum per automaik

<code>
<?xml version='1.0'?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
<xsl:template match="/">
<html>
<body>
<table border="2" bgcolor="yellow">
<tr>
<th>Title</th>
<th>Artist</th>
</tr>
<xsl:for-each select="CATALOG/CD" order-by="- DATUM">
<xsl:if match=".[AKTIV='TRUE']">
<xsl:if match=".[DATUM>'2010-05-24']">
<tr>
<td><xsl:value-of select="TITLE"/></td>
<td><xsl:value-of select="TXT"/></td>
</tr>
</xsl:if>
</xsl:if>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
</code>

compare?


Svara

Sv: större än dagens datum i xsl?

Postades av 2010-05-25 09:00:54 - Anders Sundqvist

Att få fram dagens datum bör det väl finnas någon date-funktion för kan jag tycka. Ev. att man måste göra om datumet till nummer (ta bort -) för att kunna använda > också.

Funkar din kod alls förresten?


Svara

Sv:större än dagens datum i xsl?

Postades av 2010-05-25 14:51:53 - Magnus Karlsson

current-dateTime() finns. Men hur?

Självklart fungerar koden ovan.


Svara

Sv: större än dagens datum i xsl?

Postades av 2010-05-25 17:16:55 - Anders Sundqvist

Skulle kunna tänka mig nåt sånt här på ett ungefär.

<code>
<xsl:variable name="now" select="current-dateTime()"/>

<xsl:if test="DATUM > $now">
</code>

Edit: Ju mer jag kollat på detta desto sämre känns det... någon annan på PS som har en klok lösning?


Svara

Sv:större än dagens datum i xsl?

Postades av 2010-05-25 23:19:18 - Magnus Karlsson

Bara testade att lägga till <xsl:variable name="now" select="current-dateTime()"/> men det funkar inte. Javascriptet vill inte alls ...

XSL
<code>

<?xml version='1.0'?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">

<xsl:variable name="now" select="current-dateTime()"/>

<xsl:template match="/">
<html>
<body>
<table border="2" bgcolor="yellow">
<tr>
<th>Title</th>
<th>Artist</th>
</tr>
<xsl:for-each select="CATALOG/CD" order-by="- DATUM">
<xsl:if match=".[AKTIV='TRUE']">
<xsl:if match=".[DATUM>'2010-05-24']">
<tr>
<td><xsl:value-of select="TITLE"/></td>
<td><xsl:value-of select="TXT"/></td>
</tr>
</xsl:if>
</xsl:if>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet
</code>

XML
<code>
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!-- Edited by Magnus Karlsson®
-->
<CATALOG>
<CD>
<TITLE>Banan</TITLE>
<TXT>gul</TXT>
<DATUM>2010-01-04</DATUM>
<AKTIV>TRUE</AKTIV>
</CD>
<CD>
<TITLE>Apelsin</TITLE>
<TXT>Orange</TXT>
<DATUM>2010-05-10</DATUM>
<AKTIV>TRUE</AKTIV>
</CD>
<CD>
<TITLE>Citron</TITLE>
<TXT>Gul</TXT>
<DATUM>2007-10-10</DATUM>
<AKTIV>TRUE</AKTIV>
</CD>
</CATALOG>
</code>


JAVASCRIPT
<code>
function aloadXML(id){
// Load XML
var xml = new ActiveXObject("Microsoft.XMLDOM")
xml.async = false
xml.load("xxxx.xml")

// Load the XSL
var xsl = new ActiveXObject("Microsoft.XMLDOM")
xsl.async = false
xsl.load("xxxx.xsl")

// Transform
document.getElementById(id).innerHTML = xml.transformNode(xsl)
}
</code>


Svara

Sv: större än dagens datum i xsl?

Postades av 2010-05-26 17:38:35 - Andreas Thorarins

har du provat med att skicka in det som parameter?
du kan göra så här i javascriptet lägg till

var xslProc = xslTemp.createProcessor();
xslProc.input = xml;
xslProc.addParameter("datum",getDate());
xslProc.transform;
var dittresultat = xslProc.output


och din xslt så här:


<?xml version='1.0'?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
<xsl:param name="datum"/>

<xsl:template match="/">
<html>
<body>
<table border="2" bgcolor="yellow">
<tr>
<th>Title</th>
<th>Artist</th>
</tr>
<xsl:for-each select="CATALOG/CD" order-by="- DATUM">
<xsl:if match=".[AKTIV='TRUE']">
<xsl:if match=".[DATUM> $datum]">
<tr>
<td><xsl:value-of select="TITLE"/></td>
<td><xsl:value-of select="TXT"/></td>
</tr>
</xsl:if>
</xsl:if>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet


EDIT: såg att jag fick med din currentdate funktion , den finns inte i xslt 1.0 som du använder tog bort den från xsl delen nu


Svara

Sv:större än dagens datum i xsl?

Postades av 2010-05-27 09:01:27 - Magnus Karlsson

Tackar Andreas men jag har nu roblem i javascriptet. Vad kan vara galet?

Meddelande: It is an error to mix objects from different versions of MSXML.


<code>
var xml = new ActiveXObject("Microsoft.XMLDOM")
xml.async = false
xml.load("oppet.xml")

// Load the XSL
var xsl = new ActiveXObject("Microsoft.XMLDOM")
xsl.async = false
xsl.load("oppet.xsl")


var xslTemp = new ActiveXObject("Msxml2.XSLTemplate.4.0");
xslTemp.stylesheet = xsl;


var xslProc = xslTemp.createProcessor();
xslProc.input = xml;
xslProc.addParameter("datum",'2010-01-01');
xslProc.transform;


// Transform
document.getElementById(id).innerHTML = xslProc.output </code>


Ändrade till :
<code>
var xml = new ActiveXObject("Msxml2.DOMDocument.4.0") // Microsoft.XMLDOM
xml.async = false
xml.load("oppet.xml")

// Load the XSL
var xsl = new ActiveXObject("Msxml2.FreeThreadedDOMDocument.4.0")
xsl.async = false
xsl.load("oppet.xsl")


var xslTemp = new ActiveXObject("Msxml2.XSLTemplate.4.0");
xslTemp.stylesheet = xsl;


var xslProc = xslTemp.createProcessor();
xslProc.input = xml;
xslProc.addParameter("datum",'2010-01-01');
xslProc.transform;


// Transform
document.getElementById(id).innerHTML = xslProc.output
</code>

... men får då felet :

The stylesheet does not contain a document element. The stylesheet may be empty, or it may not be a well-formed XML document.


Svara

Sv: större än dagens datum i xsl?

Postades av 2010-05-28 11:20:25 - Ola Lindfeldt

Det verkar som att din xsl inte är rätt. Om du öppnar den i en browser vad ser du då? Kan vara problem med encoding t.ex. Vilken editor kör du? Du bör köra en editor som förstår och kan formattera XML. T.ex. VS Express som är gratis: http://www.microsoft.com/express/


Svara

Sv:större än dagens datum i xsl?

Postades av 2010-05-28 12:38:21 - Magnus Karlsson

...


Svara

Sv: större än dagens datum i xsl?

Postades av 2010-05-28 13:04:52 - Anders Sundqvist

Antar att exemplet du kollar på är från xmlfiles.com och där är det fortfarande IE5 i texten, så undra om det kanske inte är lättare att du letar upp ett nyare och mer uppdaterat exempel. :-)


Svara

Sv:större än dagens datum i xsl?

Postades av 2010-05-28 13:23:25 - Magnus Karlsson

Aha .. körde in den i VS och fick till detta som fungerar.

Men. Jag kan inte få till större än och mindre än för min datum kolumn. Ide?

<code>
<?xml version='1.0'?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:param name="datum"/>

<xsl:template match="/">
<html>
<body>
<table border="2" bgcolor="yellow">
<tr>
<th>Title</th>
<th>Artist</th>
</tr>
<xsl:for-each select="CATALOG/CD" >
<xsl:if test="AKTIV='TRUE'">
<xsl:if test="DATUM=$datum">
<tr>
<td><xsl:value-of select="TITLE"/></td>
<td><xsl:value-of select="TXT"/></td>
</tr>
</xsl:if>
</xsl:if>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
</code>


Svara

Sv: större än dagens datum i xsl?

Postades av 2010-05-28 14:05:19 - Anders Sundqvist

Menar du såhär?

<code>
<xsl:if test="DATUM &gt; $datum">
<xsl:if test="DATUM &lt; $datum">
</code>


Svara

Sv:större än dagens datum i xsl?

Postades av 2010-05-28 14:12:59 - Magnus Karlsson


Har testat med det också men får inga poster som svar.. bara = fungerar och ger ett svar.


Svara

Sv: större än dagens datum i xsl?

Postades av 2010-05-28 14:20:55 - Anders Sundqvist

Prova att plocka bort '-' tecknet i datumet, tror ev. att inte < och > fungerar om det inte är nummer.

Edit: number(translate('datum_att_testa', '-', ''))


Svara

Sv:större än dagens datum i xsl?

Postades av 2010-05-28 15:00:28 - Magnus Karlsson

Yes! nu funkar det. Tackar för häljpen!


Svara

Nyligen

  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper
  • 16:36 Allt du behöver veta om keramiskt
  • 16:14 Vem anlitar man egentligen när tak
  • 16:14 Vem anlitar man egentligen när tak
  • 16:13 Vem anlitar man egentligen när tak
  • 11:52 Noen erfaring med uttak hos Mostbe
  • 11:51 Noen erfaring med uttak hos Mostbe

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 557
27 958
271 741
400
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies