2017-02-17 7 views
0

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

을 혼동 "속성"이라는 요소를 가지고 있지 않은 경우 귀하의 질문이 명확하게 될 것이다 <속성 .../> 아니. (위의 내 게시물 에서처럼.) –