[Phoenix-commits] rev 15040 - public/phoenix/trunk/phoenix/prototypes/prototype1/test/testpackage/chrome/content

andi at wyona.com andi at wyona.com
Thu Jul 6 22:35:48 CEST 2006


Author: andi
Date: 2006-07-06 22:35:46 +0200 (Thu, 06 Jul 2006)
New Revision: 15040

Modified:
   public/phoenix/trunk/phoenix/prototypes/prototype1/test/testpackage/chrome/content/idcopier.xsl
   public/phoenix/trunk/phoenix/prototypes/prototype1/test/testpackage/chrome/content/processingloop-test.xul
Log:
Add XSL imports at runtime.


Modified: public/phoenix/trunk/phoenix/prototypes/prototype1/test/testpackage/chrome/content/idcopier.xsl
===================================================================
--- public/phoenix/trunk/phoenix/prototypes/prototype1/test/testpackage/chrome/content/idcopier.xsl	2006-07-06 19:57:03 UTC (rev 15039)
+++ public/phoenix/trunk/phoenix/prototypes/prototype1/test/testpackage/chrome/content/idcopier.xsl	2006-07-06 20:35:46 UTC (rev 15040)
@@ -3,8 +3,6 @@
                 xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                 xmlns="http://www.w3.org/1999/xhtml">
 
-  <xsl:import href="helloworld.xsl"/>
-
   <xsl:output method="xml" encoding="UTF-8"/>
 
   <xsl:template match="text()|@*">

Modified: public/phoenix/trunk/phoenix/prototypes/prototype1/test/testpackage/chrome/content/processingloop-test.xul
===================================================================
--- public/phoenix/trunk/phoenix/prototypes/prototype1/test/testpackage/chrome/content/processingloop-test.xul	2006-07-06 19:57:03 UTC (rev 15039)
+++ public/phoenix/trunk/phoenix/prototypes/prototype1/test/testpackage/chrome/content/processingloop-test.xul	2006-07-06 20:35:46 UTC (rev 15040)
@@ -16,10 +16,12 @@
     /* DEBUG */ dump("######## PhoenixTEST:processingloop-test.js:generateXHTML() invoked\n");
 
     inputIframe  = document.getElementById("iframe1");
-    outputIframe = document.getElementById("iframe4");
+    outputIframe = document.getElementById("iframe5");
 
     /* DEBUG */ dump("######## PhoenixTEST:processingloop-test.js:generateXHTML: input source =\n" + serialiseXML(inputIframe.contentDocument) + "\n");
 
+    insertXSLTImport(loadIDCopierXSLT(), "helloworld.xsl");
+
     taggedDocument = transformXML(inputIframe.contentDocument, loadTaggerXSLT());
     xhtmlDocument  = transformXML(taggedDocument, loadIDCopierXSLT());
 
@@ -36,7 +38,24 @@
     return document.getElementById("iframe3").contentDocument;
 }
 
+function insertXSLTImport(aXStylesheetDocument, aImportURI) {
+    var rootNode   = null;
+    var importNode = null;
 
+    // get root node
+    rootNode = aXStylesheetDocument.evaluate("xsl:stylesheet", aXStylesheetDocument, aXStylesheetDocument.createNSResolver(aXStylesheetDocument.documentElement), XPathResult.UNORDERED_NODE_ITERATOR_TYPE, null).iterateNext();
+
+    /* DEBUG */ dump("######## PhoenixTEST:processingloop-test.js:insertXSLTImport: root node = \"" + rootNode + "\"\n");
+    /* DEBUG */ dump("######## PhoenixTEST:processingloop-test.js:insertXSLTImport: root node output =\n" + serialiseXML(rootNode) + "\n");
+
+    // add import statement
+    importNode = aXStylesheetDocument.createElementNS("http://www.w3.org/1999/XSL/Transform", "import");
+    importNode.setAttribute("href", aImportURI);
+    rootNode.insertBefore(importNode, rootNode.firstChild);
+
+    /* DEBUG */ dump("######## PhoenixTEST:processingloop-test.js:insertXSLTImport: root node output =\n" + serialiseXML(rootNode) + "\n");
+}
+
 function transformXML(aDocument, aXStylesheetDocument) {
     var xsltProcessor       = null;
     var transformedDocument = null;
@@ -53,8 +72,8 @@
 }
 
 
-function serialiseXML(aDocument) {
-    return (new XMLSerializer()).serializeToString(aDocument);
+function serialiseXML(aNode) {
+    return (new XMLSerializer()).serializeToString(aNode);
 }
 ]]>
   </script>
@@ -63,10 +82,11 @@
   <vbox flex="1">
     <iframe id="iframe1" src="chrome://test/content/helloworld.xml"   flex="1" style="border: 1px solid black"/>
     <iframe id="iframe2" src="chrome://test/content/sourcetagger.xsl" flex="1" style="border: 1px solid black"/>
+    <iframe id="iframe3" src="chrome://test/content/idcopier.xsl"     flex="1" style="border: 1px solid black"/>
   </vbox>
   <vbox flex="1">
-    <iframe id="iframe3" src="chrome://test/content/idcopier.xsl"     flex="1" style="border: 1px solid black"/>
-    <iframe id="iframe4" flex="1" style="border: 1px solid black"/>
+    <iframe id="iframe4" src="chrome://test/content/helloworld.xsl"     flex="1" style="border: 1px solid black"/>
+    <iframe id="iframe5" flex="1" style="border: 1px solid black"/>
   </vbox>
 
 </window>




More information about the Phoenix-commits mailing list