/ 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
XSLT, XML transformering med ASP
Fra : Jakob Andersen


Dato : 20-05-02 20:43

Nogen vil måske kalde mig en idiot nu, men jeg har lige brug for at juble
lidt

Jeg har de sidste par timer siddet og undret mig over at jeg ikke kunne få
følgende kode til at virke:

strXML = "Noget xml"
Dim objXML
set objXML = Server.CreateObject("Microsoft.XMLDOM")
objXML.async = false
objXML.loadXML( "<?xml version=""1.0"" encoding=""iso-8859-1""?>" & strXML )
Dim objXSL
Set objXSL = Server.CreateObject("Microsoft.XMLDOM")
objXSL.async = false
objXSL.load(Server.MapPath("/xsl/fil.xsl"))
objXML.transformNodeToObject objXSL, Response

Og efter lang tids søgen fandt jeg ud af at fejlen opstod i at jeg i mit XSL
dokument gør brug af xsl:import elementet, og MSXML kan åbenbart ikke finde
ud af at dette er en relativ stiangivelse som dette:

<xsl:import href="/xsl/templates/template.xsl" />

derfor kan den ikke gennemføre transformeringen. Og så var det jeg lige sad
og opfandte dette fix som jeg lige ville dele med jer andre:

Dim import
For Each import in objXSL.getElementsByTagName("xsl:import")
import.setAttribute "href", Server.MapPath(import.getAttribute("href"))
Next

som skifter alle de relative stier i import elementerne ud med de absolute
stier "on-the-fly" så slipper man for at skrive:

<xsl:import href="c:\filer\xsl\templates\template.xsl" />

i alle sine XSL filer, hvilket ikke ville være særlig smart hvis de skulle
flyttes lidt rundt på et tidspunkt.

--
Jakob Andersen
Som har lidt svært ved at få armene ned efter løsningen på et par timers
hovedbrud



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

Månedens bedste
Årets bedste
Sidste års bedste