[jdom-interest] [Q}How to Applay XSL using Xalan2
    ITOH Kazuhiro 
    itoh at ipc.kajima.co.jp
       
    Tue Feb  6 16:18:33 PST 2001
    
    
  
Dear ALL.
||I just took a cursory look, but I would say that your code needs to be
||multi-threaded. When using piped streams, you need to use separate
||threads for writing to one stream and reading from the other. If you
||don't, the result is typically a deadlock situation.
||
||--Frank
Thank you for your suggestion. Then I changed my code from using pipedIO using
jdom.output.DOMOut method.
Then I met a problem...
case1(comment outed portion with comment "work well")
In this case, I created StreamSource for xsl file.
this worked well.
case2
I changed xsl file into org.w3c.dom.Document using org.jdom.output#DOMOutputter
as same as xml file.
Then I got error message as below:
"Parser error: stylesheet requires attribute: version"
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
at the sentense
  Transformer transformer = tFactory.newTransformer(new DOMSource(xslDoc));
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.
I need this way using JDOM Document of xsl. Because I want to change it to
match user interactions and apply it to JDOM Document of xml.
Could you tell me some suggestions.
#I used birds.xml and birds.xsl including Xalan2 samples.
Thanks....
my code is here.
------------------------------start------------------------------
import java.io.*;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.stream.StreamResult;
import javax.xml.transform.stream.StreamSource;
import javax.xml.transform.dom.DOMResult;
import javax.xml.transform.dom.DOMSource;
import org.jdom.*;
import org.jdom.output.XMLOutputter;
import org.jdom.output.DOMOutputter;
import org.jdom.input.SAXBuilder;
public class ApplyXalan2 {
  public ApplyXalan2() {
  }
  public static void main(String[] args) {
    try {
      //JDOM Document
      SAXBuilder builder = new SAXBuilder(false);
      Document docXML = builder.build("data/birds.xml");
      DOMOutputter jdomOuter = new DOMOutputter();
      org.w3c.dom.Document xmlDoc=jdomOuter.output(docXML);
      File f = new File("data/birds.xsl");
      Document docXSL = builder.build(f);
      org.w3c.dom.Document xslDoc=jdomOuter.output(docXSL);
      //apply xslt using xalan2
      TransformerFactory tFactory = TransformerFactory.newInstance();
      Transformer transformer = tFactory.newTransformer(new DOMSource(xslDoc));
      transformer.transform(new DOMSource(xmlDoc), new StreamResult("data/out2.html" ));
      /* --------------------------------Work well
      TransformerFactory tFactory = TransformerFactory.newInstance();
      Transformer transformer =
        tFactory.newTransformer(new StreamSource("data/birds.xsl"));
      transformer.transform(new DOMSource(xmlDoc), new StreamResult("data/out2.html" ));
      ------------------------------------*/
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
}
_/_/_/_/_/__/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
mailto:itoh at ipc.kajima.co.jp
Kazuhiro Itoh
_/_/_/_/_/__/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
    
    
More information about the jdom-interest
mailing list