2017-02-17 41 views
0

我在Java中格式化空白時遇到了問題。我爲我的文件添加了新的屬性,但它的格式不正確。Java中的XML空白格式化

Attr attr = doc.createAttribute("name"); 
    attr.setValue("name"); 
    element.setAttributeNode(attr); 
    element.setTextContent("Something=" + this.thumbnailCacheSize); 

    NodeList items = doc.getElementsByTagName("mbean"); 
    Node e = items.item(0); 
    e.appendChild(element); 
    TransformerFactory transformerFactory = TransformerFactory.newInstance(); 
    Transformer transformer = transformerFactory.newTransformer(); 
    transformer.setOutputProperty(OutputKeys.INDENT,"yes"); 
    DOMSource source = new DOMSource(doc); 
    StreamResult result = new StreamResult(filepath); 

    transformer.transform(source,result); 

它應該是這樣的:

<?xml version="1.0" encoding="UTF-8" standalone="no"?> 
<server> 
    <mbean code="code" name="name"> 
    <attribute name="name3">Something3=500</attribute> 
    <attribute name="name2">Something2=500</attribute> 
    <attribute name="name1">Something1=500</attribute> 
    <attribute name="name">Something=500</attribute> 
    </mbean> 
</server> 

但是像:

<?xml version="1.0" encoding="UTF-8" standalone="no"?> 
<server> 
<mbean code="code" name="name"> 
    <attribute name="name3">Something3=500</attribute> 
    <attribute name="name2">Something2=500</attribute> 
    <attribute name="name1">Something1=500</attribute> 
    <attribute name="name">Something=500</attribute> 
</mbean> 
</server> 

當我用: transformer.setOutputProperty( 「{} http://xml.apache.org/xslt縮進量」,「 4" );

我得到:

<?xml version="1.0" encoding="UTF-8" standalone="no"?> 
<server> 
<mbean code="code" name="name"> 
    <attribute name="name3">Something3=500</attribute> 
    <attribute name="name2">Something2=500</attribute> 
    <attribute name="name1">Something1=500</attribute> 
    <attribute name="name">Something=500</attribute> 
    </mbean> 
</server> 
+0

你的問題會更清楚,如果你沒有的元素混淆的名爲「屬性」 ...... –

回答

0

試試這個。

Transformer transformer = transformerFactory.newTransformer(); 
transformer.setOutputProperty(OutputKeys.INDENT, "yes"); // enable indent 
transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "4"); // 4 is indent space (default is zero) 
+0

它的工作原理,但現在,我已經在了正確的縮進,但在<屬性.../>沒有。 (就像我在上面的帖子裏。) –