2010-04-16 2 views
10

Я добавил решение к приведенному ниже коду.Добавить xml-stylesheet и получить standalone = yes

Код внизу - это то, что у меня есть. Я удалил создание всех тегов.

Наверху в XML-файле я получаю. <?xml version="1.0" encoding="UTF-8" standalone="no"?> Обратите внимание, что автономный - нет, даже если у меня он настроен на «да».

Первый вопрос: Как мне получить автономный = да?

Я хочу добавить <?xml-stylesheet type="text/xsl" href="my.stylesheet.xsl"?> в строку два в файле xml.

Второй вопрос: Как мне это сделать?

Некоторые полезные ссылки? Что-нибудь?

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"))); 

ответ

10

Я добавил

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

перед разрезом и

doc.insertBefore(pi, root); 

сразу после корневой элемент был приложен к документу.

3

в моем коде, я написал:


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"); 

выход:

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

Смежные вопросы