Problème transfo XSL avec API Java 1.5 + SAX + XML avec namespace

Problème transfo XSL avec API Java 1.5 + SAX + XML avec namespace - Java - Programmation

Marsh Posté le 17-12-2008 à 17:32:50    

Bonjour,
 
J'essaie d'utiliser SAX pour faire ma transformation XSL sur un fichier XML avec l'api java 1.5 (utilisant xalan).
 
Apparemment, cela n'a pas l'air de marcher avec un XML contenant des namespace.
 
Voici ma méthode Java :
 

Code :
  1. public String transformWithSAX(String input, InputStream xslStream, String styleSheetName, HashMap<String,String> styleSheetParameters, boolean namespaceAware) throws IOException {
  2.       try {
  3.              StringReader inputSource = new StringReader(input);
  4.            
  5.              SAXParserFactory spf = SAXParserFactory.newInstance();
  6.              spf.setNamespaceAware(namespaceAware);
  7.            
  8.              SAXSource sourceInput = new SAXSource(new InputSource(inputSource));
  9.              StreamSource styleSource = new StreamSource(xslStream);
  10.              styleSource.setSystemId(new File(styleSheetName));
  11.              // Create a transformer for the stylesheet.
  12.              TransformerFactory factory = TransformerFactory.newInstance();
  13.              Templates templates = factory.newTemplates(styleSource);
  14.              Transformer transformer = templates.newTransformer();
  15.              // Insert parameters
  16.              if (styleSheetParameters != null) {
  17.                  Iterator<String> iterator = styleSheetParameters.keySet().iterator();
  18.                  String keyName;
  19.                  while (iterator.hasNext()) {
  20.                      keyName = (String) iterator.next();
  21.                      transformer.setParameter(keyName, styleSheetParameters.get(keyName) );
  22.                  }
  23.              }
  24.            
  25.              StringWriter out = new StringWriter();
  26.              StreamResult result = new StreamResult(out);
  27.              transformer.transform(sourceInput, result);
  28.              return ((StringWriter) result.getWriter()).toString();
  29.          } catch (Exception ex) {
  30.              logger.error("exception during transfo With style sheet " + styleSheetName
  31.                      + " for XML file:\n" + input, ex);
  32.              throw new IOException(ex.toString());
  33.          }
  34.     }


 
 
La ligne  
 

Code :
  1. spf.setNamespaceAware(namespaceAware)


 
n'a pas l'air d'être efficace qu'on lui passe false ou true...
 
Une idée? (car ça marchait bien avec DOM).
 
Merci :-)

Reply

Marsh Posté le 17-12-2008 à 17:32:50   

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed