Pass xml document as parameter to xsl

后端 未结 3 1269
谎友^
谎友^ 2020-12-21 02:39

I have read a lot of post and tried a lot of things but still can\'t get the xsl to find values in the parameter. I started with java\'s sun xalan and never got it working

3条回答
  •  余生分开走
    2020-12-21 03:15

    I was able to get it work with Saxon see below code. I think the key was the document.getDocumentElement() as parm

          public String transformResultXML(String xmlSource, Templates xsl,String policyXml )    {
           String result = "";  
    
        try {
    
              StringWriter writer = new StringWriter();
              StringReader reader2 = new StringReader(policyXml);
    
              DocumentBuilderFactory dfactory =
                      DocumentBuilderFactory.newInstance( "com.icl.saxon.om.DocumentBuilderFactoryImpl",null);
    
              dfactory.setNamespaceAware(true);
    
              DocumentBuilder docBuilder = dfactory.newDocumentBuilder();
    
              org.w3c.dom.Document document = docBuilder.parse(new InputSource(new StringReader(xmlSource)));
    
              Transformer transformer = xsl.newTransformer();
    
              transformer.setParameter("RsXml", document.getDocumentElement());
    
              transformer.setOutputProperty(OutputKeys.INDENT, "yes");
              transformer.transform(new javax.xml.transform.stream.StreamSource(reader2),
                      new javax.xml.transform.stream.StreamResult(writer));
              result = writer.toString();
              System.out.println(result);
    
        } catch( Exception e ) {
            e.printStackTrace();
        }
    

    XSL snippet

        
    
    
    
    
            
    

提交回复
热议问题