/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
Udskriv xsl dokument
Fra : Martin Jensen


Dato : 30-11-08 15:13

Hej NG

Jeg har fundet frem til en sortering af et xml dokument på
xml.com, hvor jeg med xsl dokumentet:

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:output method="text"/>
<?startSampleFile ?>
<!-- xq434.xsl: converts xq423.xml into xq435.xml -->

<xsl:template match="employees">
<xsl:apply-templates>
<xsl:sort select="substring(@hireDate,7,4)"/> <!-- year -->
<xsl:sort select="substring(@hireDate,1,2)"/> <!-- month -->
<xsl:sort select="substring(@hireDate,3,2)"/> <!-- day -->
</xsl:apply-templates>
</xsl:template>
<?endSampleFile ?>

<xsl:template match="employee">
Last: <xsl:apply-templates select="last"/>
First: <xsl:apply-templates select="first"/>
Salary: <xsl:apply-templates select="salary"/>
Hire Date: <xsl:apply-templates select="@hireDate"/>
<xsl:text>
</xsl:text>

</xsl:template>

</xsl:stylesheet>





Vil kunne sortere nedenstående xml dokument efter hireDate

<employees>

<employee hireDate="04/23/1999">
<last>Hill</last>
<first>Phil</first>
<salary>100000</salary>
</employee>

<employee hireDate="09/01/1998">
<last>Herbert</last>
<first>Johnny</first>
<salary>95000</salary>
</employee>

<employee hireDate="08/20/2000">
<last>Hill</last>
<first>Graham</first>
<salary>89000</salary>
</employee>

</employees>



Jeg forstår ikke helt hvordan jeg får det til at virke, men har
prøvet at udskrive xls dokumentet med følgende asp:

extURL = "http://www.barnstormers.dk/xmlleg/xq434.xsl"

set xmlDoc = createObject("Msxml.DOMDocument")
xmlDoc.async = false
xmlDoc.setProperty "ServerHTTPRequest", true
xmlDoc.load(extURL)

If (xmlDoc.parseError.errorCode <> 0) then
   Response.Write "XML error: " & xmlDoc.parseError.reason
Else
   set customerNodes = xmlDoc.selectNodes("//employee/*")
   for each entry in customerNodes
      if entry.tagName = "last" then
         strLast = strLast & entry.text & "#%#"
      elseif entry.tagName = "first" then
         strFirst = strFirst & entry.text & "#%#"
      elseif entry.tagName = "salary" then
         strSalary = strSalary & entry.text & "#%#"
      elseif entry.tagName = "hireDate" then
         strHireDate = strHireDate & entry.text & "#%#"
      end if
   next
   
   arrLast = split(strLast,"#%#")
   arrFirst = split(strFirst,"#%#")
   arrSalary = split(strSalary,"#%#")
   arrHireDate = split(strHireDate,"#%#")
   
   for i = 0 to UBound(arrLast) - 1
      response.Write arrLast(i)&", "&arrFirst(i)&"<br
/>"&vbcrlf&arrSalary(i)&"<br />"&vbcrlf&arrHireDate(i)&"<br /><br
/>"&vbcrlf
   next
   
end if


Er der nogen af jer der kan fortælle hvad jeg gør forkert, for
jeg får ikke nogen resultater ud.


--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

 
 
Stig Johansen (30-11-2008)
Kommentar
Fra : Stig Johansen


Dato : 30-11-08 17:18

Martin Jensen wrote:

[snip en masse]

> Er der nogen af jer der kan fortælle hvad jeg gør forkert, for
> jeg får ikke nogen resultater ud.

Når man skal lave XSLT, skal du have fat i både xml'et og xsl'et.

Jeg har ikke lige noget kode ved hånden (ligger på en ½-død server), men
tænk i banerne:
xml+xsl=>xml
eller
xml+xsl=>html

Jeg kan ikke huske den præcise syntax og metoder, så det bliver nok lidt
tåget, men overordnet:

Du skal lave to stykker xmldoc's a la:
set xmlDoc = createObject("Msxml.DOMDocument")
.... her loader du xml'et
set xslDoc = createObject("Msxml.DOMDocument")
.... her loader du xsl'et

Herefter skal du skabe output'et, og metoden hedder .transform
eller .transformnode

Prøv at søge efter det.

--
Med venlig hilsen
Stig Johansen

Martin Jensen (30-11-2008)
Kommentar
Fra : Martin Jensen


Dato : 30-11-08 22:30

Stig Johansen wrote in dk.edb.internet.webdesign.serverside.asp:
> Du skal lave to stykker xmldoc's a la:
> set xmlDoc = createObject("Msxml.DOMDocument")
> .... her loader du xml'et
> set xslDoc = createObject("Msxml.DOMDocument")
> .... her loader du xsl'et

Tak for forsøget, men jeg opgav, og flyttede mine xml data over i et array,
og sorterede det, så nu virker det som det skal.

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408914
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste