[VB.net] XSL 'file' uit de database

Pagina: 1
Acties:

  • mark117
  • Registratie: Oktober 2002
  • Laatst online: 24-05 05:05
Ik zit hier met een probleem, ik transformeerde eerst een xsl bestand (echt op de schijf) met een zelf gegenereerde xml:

Visual Basic .NET:
1
2
3
4
5
6
7
8
Dim transfer As New Xml.Xsl.XslTransform
Dim sw As New StringWriter

transfer.Load("D:\map\email.xsl")
xmlDoc.LoadXml(xmlString)

transfer.Transform(xmlDoc, Nothing, sw, Nothing)
strReturn = (sw.ToString).Substring(0)

Maar nu wil ik de xsl uit de database halen, dus moet het hele xsl bestand in een string, maar nu kom ik er niet uit hoe ik deze string laad in het transfer object.

Ik weet dat de transfer.Load ook een XmlReader als parameter heeft, maar hoe krijg ik de string met het XSL document in een XMLReader zodat ik het kan gebruiken voor een transformatie??

dit werkt (natuurlijk) niet
Visual Basic .NET:
1
Dim xslReader As New XmlTextReader(XslString)

want deze constructor vraagt ook een verwijzing naar een bestand

Ik heb bij google en de got-search niets kunnen vinden, alleen mensen die hetzelfde wilden maar niet vertelden hoe ze het hebben gedaan :|

[ Voor 10% gewijzigd door mark117 op 06-02-2004 10:07 ]


  • whoami
  • Registratie: December 2000
  • Laatst online: 00:40
Ik heb me er nog niet zo in verdiept, maar kan je geen XmlDocument of XmlDataDocument gebruiken, waarvan je dan de LoadXml method gebruikt om de XML string die je hebt in te laden in dat XmlDocument?
Dan kan je misschien dat XmlDocument gebruiken in je XslTransform object.

https://fgheysels.github.io/


  • mark117
  • Registratie: Oktober 2002
  • Laatst online: 24-05 05:05
Ik heb even gekeken om de xsl-string in een XmlDocument te zetten, en dat lukt gewoon wel.
Maar de Transfer.Load functie heeft geen overloaded versie die een XmlDocument vraagt, ik kan alleen maar een String(Url) of een XmlTextreader er in gooien (met nog een Xmlresolver en een evidence classe).

Is er echt geen mogelijkheid om de string om te zetten naar een XmlTextReader ??

Verwijderd

Je kan wel gewoon de XmlTextReader gebruiken. De XmlTextReader heeft ook een constructor die een TextReader object gebruikt namelijk:
Visual Basic:
1
Public Sub New(TextReader)

En een TextReader bestaat in 2 smaken te weten: De StreamReader en de StringReader.

Als je je XSL document in een String hebt kan je volgens mij het volgende doen:
Visual Basic:
1
2
3
4
5
.
. Laad eerst je XSL doc in de String variabele: myXSLString
.
Dim sr as New StringReader(myXSLString)
Dim xtr as New XmlTextReader(sr)


Nu heb je een XmlTextReader die je kan gebruiiken met Transfer.Load.

[ Voor 7% gewijzigd door Verwijderd op 06-02-2004 10:39 ]


  • whoami
  • Registratie: December 2000
  • Laatst online: 00:40
mark117 schreef op 06 februari 2004 @ 10:34:
Ik heb even gekeken om de xsl-string in een XmlDocument te zetten, en dat lukt gewoon wel.
Maar de Transfer.Load functie heeft geen overloaded versie die een XmlDocument vraagt, ik kan alleen maar een String(Url) of een XmlTextreader er in gooien (met nog een Xmlresolver en een evidence classe).

Is er echt geen mogelijkheid om de string om te zetten naar een XmlTextReader ??
Je kan dat XmlDocument gebruiken als basis om een XmlReader te maken. Je geeft dat XmlDocument dan mee aan de constructor:

code:
1
XmlReader r = new XmlReader(MyXmlDocument);

https://fgheysels.github.io/


  • mark117
  • Registratie: Oktober 2002
  • Laatst online: 24-05 05:05
Het is gelukt,

de oplossing van rmk heeft het gedaan, via de stringreader kreeg ik de xsl wel in de XmlTextReader.

@whoami: Ik heb nog even geprobeerd wat jij zegt, maar een XmlReader classe (dus de XmlTextReader versie daarvan) wil alleen maar een TextReader, Url of een Stream. Dus geen XmlDocument
Pagina: 1