Toon posts:

[VB.NET]XSL inlezen als stream > xsl:import proble

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ok, ik heb een functie gebouwd in vb.net waarbij m'n xsl data als een stream wordt aangeleverd:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Public Function show(ByVal xml As TextReader, ByVal xsl As TextReader, ByVal output As TextWriter)
        'Create a new XslTransform object.
        Dim xslt As New XslTransform()

        'Load the stylesheet.
        xslt.Load(New XmlTextReader(xsl))

        'Create a new XDirectoryDocument and load the XML data to be transformed.
        Dim mydata As New XPathDocument(New XmlTextReader(xml))

        'Create an XmlTextWriter which outputs to the console.
        Dim writer As New XmlTextWriter(output)

        'Transform the data and send the output to the console.
        xslt.Transform(mydata, Nothing, writer)
      End Function

Ik doe het op deze manier zodat het intern transparant is waar de data vandaan komt (of het nou een bestaand bestand is, of gewoon een string met xsl data, het wordt allemaal aangeleverd als een stream)

Probleem is dat ik in m'n xsl een <xsl:import select="templates.xslt"/> heb staan en hij nu een IO Exception geeft dat ie templates.xslt niet kan vinden. Hij zoekt in m'n winnt/system32 directory, dus het lijkt erop dat hij door die stream niet meer weet waar hij moet gaan kijken:

Exception Details: System.IO.FileNotFoundException: Could not find file "C:\WINNT\system32\templates.xslt".

Is er een manier om dit op te lossen?

Verwijderd

Topicstarter
hmm...lees net het volgende:
XslTransform.Load Method (XmlReader, XmlResolver)

Loads the XSLT stylesheet contained in the XmlReader.

public function Load(
stylesheet : XmlReader,
resolver : XmlResolver
);

Parameters
stylesheet
An XmlReader object that contains the XSLT stylesheet.
resolver
The XmlResolver used to load any stylesheets referenced in xsl:import and xsl:include elements. If this is a null reference (Nothing in Visual Basic), external resources are not resolved.
Maar hoe moet ik dit gebruiken? :?

Verwijderd

Topicstarter
prob opgelost :)

alles wordt nu als een xmltextstream aangeleverd, die xmltextstream wordt aangemaakt dmv het aangeven van het pad, hierdoor wordt de resolver geinitialiseerd met de juiste base-uri

weekend 8-)