Hoi hoi,
Ik probeer in JScript een xml bestand om te vormen met behulp van xslt.
Dat omvormen lukt, en ik krijg output maar dat is een string!
En ik zou een Node willen (een Node die ik kan appenden aan een div-element in de html)
In firefox met javascript/ECMAscript gaat dat (in het kort) zo:
Ik heb nu het volgende:
Deze output geeft dus een string waar ik niets mee kan. Ik wil ook persé niet de string aan mijn html toevoegen met innerHTML. Ik dacht op MSDN te lezen dat de output afhing van de waarde van het xml:output element in de stylesheet, deze staat zo:
<xsl:output method="xml" media-type="text/xml" encoding="UTF-8" indent="yes"
omit-xml-declaration="yes" />
En het lijkt me dat dat geen string zou op mogen leveren.
Op MSDN vond ik nog een functie die wat lijkt op transformToFragment:
oXMLDOMNode.transformNodeToObject(stylesheet, outputObject);
(zie: hier)
Wie weet hoe ik de output als xml kan krijgen?
edit: misschien is de topicttitel niet helemaal netjes, sorry daarvoor
Ik probeer in JScript een xml bestand om te vormen met behulp van xslt.
Dat omvormen lukt, en ik krijg output maar dat is een string!
En ik zou een Node willen (een Node die ik kan appenden aan een div-element in de html)
In firefox met javascript/ECMAscript gaat dat (in het kort) zo:
code:
In Internet Explorer wil ik dus iets soortgelijks voor de transformToFragment functie.1
2
3
4
5
6
7
8
9
10
11
12
| this._proc = new XSLTProcessor();
// de stylesheet inladen
var tempXmlReq = new xmlRequest();
var theStyleSheet = tempXmlReq.getDocument("stylesheet.xsl");
tempXmlReq = null;
this._proc.importStylesheet(theStyleSheet);
// de xml data inladen en transformen
var tempXmlReq = new xmlRequest();
var xmlSource = tempXmlReq.getDocument("data.xml");
var fragment = this._proc.transformToFragment(xmlSource, domDocument);
return fragment; |
Ik heb nu het volgende:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| // stylesheet inladen en processor aanmaken
var xslDoc = new ActiveXObject("Msxml2.FreeThreadedDOMDocument.4.0");
this.xslTemplate = new ActiveXObject("Msxml2.XSLTemplate.4.0");
xslDoc.async = false;
xslDoc.load(filename);
this.xslTemplate.stylesheet = xslDoc;
this._proc = this.xslTemplate.createProcessor();
// de xml data inladen en transformen
var tempXmlReq = new xmlRequest();
var xmlSource = tempXmlReq.getDocument("data.xml");
this._proc.input = xmlSource;
this._proc.transform();
return this._proc.output; |
Deze output geeft dus een string waar ik niets mee kan. Ik wil ook persé niet de string aan mijn html toevoegen met innerHTML. Ik dacht op MSDN te lezen dat de output afhing van de waarde van het xml:output element in de stylesheet, deze staat zo:
<xsl:output method="xml" media-type="text/xml" encoding="UTF-8" indent="yes"
omit-xml-declaration="yes" />
En het lijkt me dat dat geen string zou op mogen leveren.
Op MSDN vond ik nog een functie die wat lijkt op transformToFragment:
oXMLDOMNode.transformNodeToObject(stylesheet, outputObject);
(zie: hier)
Wie weet hoe ik de output als xml kan krijgen?
edit: misschien is de topicttitel niet helemaal netjes, sorry daarvoor
[ Voor 10% gewijzigd door Verwijderd op 27-07-2006 16:26 ]