2010-04-16 3 views
10

J'ai ajouté la solution au code ci-dessous.Ajouter xml-stylesheet et obtenir standalone = oui

Le code en bas est ce que j'ai. J'ai supprimé la création de tous les tags.

En haut dans le fichier xml je reçois. <?xml version="1.0" encoding="UTF-8" standalone="no"?> Notez que standalone est non, même si je l'ai mis à oui.

La première question: Comment obtenir une autonomie = oui? Je voudrais ajouter <?xml-stylesheet type="text/xsl" href="my.stylesheet.xsl"?> à la ligne deux dans le fichier XML.

Deuxième question: Comment faire?

Quelques liens utiles? N'importe quoi?

DocumentBuilderFactory dbfac = DocumentBuilderFactory.newInstance(); 
DocumentBuilder docBuilder = dbfac.newDocumentBuilder(); 
Document doc = docBuilder.newDocument(); 
doc.setXmlStandalone(true); 
ProcessingInstruction pi = doc.createProcessingInstruction("xml-stylesheet", "type=\"text/xsl\" href=\"my.stylesheet.xsl\""); 

Element root = doc.createElement("root-element"); 
doc.appendChild(root); 
doc.insertBefore(pi, root);  

<cut> 

TransformerFactory transfac = TransformerFactory.newInstance(); 
transfac.setAttribute("indent-number", new Integer(2)); 
Transformer trans = transfac.newTransformer(); 
trans.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "no"); 
trans.setOutputProperty(OutputKeys.STANDALONE, "yes"); 
trans.setOutputProperty(OutputKeys.INDENT, "yes"); 
trans.setOutputProperty(OutputKeys.CDATA_SECTION_ELEMENTS, "name"); 

FileOutputStream fout = new FileOutputStream(filepath); 
BufferedOutputStream bout= new BufferedOutputStream(fout); 
trans.transform(new DOMSource(doc), new StreamResult(new OutputStreamWriter(bout, "utf-8"))); 

Répondre

10

I ajouté

doc.setXmlStandalone(true); 
ProcessingInstruction pi = doc.createProcessingInstruction("xml-stylesheet", "type=\"text/xsl\" href=\"my.stylesheet.xsl\"");` 

avant la coupe et

doc.insertBefore(pi, root); 

juste après l'élément racine a été ajouté à la doc.

3

dans mon code, j'ai écrit:


DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); 

DocumentBuilder builder = factory.newDocumentBuilder(); 
Document document = builder.newDocument(); 
document.setXmlStandalone(true); 

TransformerFactory tfactory = TransformerFactory.newInstance(); 
Transformer transformer = tfactory.newTransformer(); 
transformer.setOutputProperty(OutputKeys.STANDALONE, "yes"); 

sortie:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>

Questions connexes