2013-10-06 3 views
1

Я использую javax.xml.parsers.DocumentBuilder и хочу записать файл в файл.Java XML dom: предотвратить свертывание пустого элемента

Если есть пустой элемент, выход по умолчанию является разрушилась:

<element/> 

Могу ли я изменить это поведение, так что это не сворачивается элемент? I.e .:

<element></element> 

Благодарим за помощь.

ответ

1

Это актуально в зависимости от способа написания документа в файле и не имеет ничего общего с самим DOM. В следующем примере используется популярный Transformer на основе подхода:

DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();  
Document document = factory.newDocumentBuilder().newDocument();    
Element element = document.createElement("tag");        
document.appendChild(element);            
TransformerFactory transformerFactory = TransformerFactory.newInstance(); 
Transformer transformer = transformerFactory.newTransformer();    
transformer.setOutputProperty(OutputKeys.METHOD, "html");     
DOMSource source = new DOMSource(document);         
StreamResult result = new StreamResult(System.out);       
transformer.transform(source, result);         

Он выводит <tag></tag>, как вы ожидаете. Обратите внимание, что изменение метода вывода имеет другие побочные эффекты, такие как отсутствие объявления XML.

+0

см. Transformer.setOutputProperty (OutputKeys.METHOD, "html"); –

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