2011-04-23 3 views
6

아파치 커먼즈 설정 XMLConfiguration을 사용하여 XML 파일을 빌드하고 저장한다. 저장시 서식이 없습니다. 내가 그 출력을 가지고 형식을 다른 라이브러리를 사용하는 방법의 많음이 알고아파치 커먼즈 설정으로 XML 출력 포맷하기 XMLConfiguration

<root> 
<node> 
<child> 
</child> 
</node> 
</root> 

, 그러나 확실하게 공유지 구성에서 들여 쓰기 같은 간단한을 설정하는 방법이 있어야합니다 : 나는 무언가 같이 얻을 ?

답변

-2

this threads을 참조하십시오. 이는 Java에서 xml 형식을 처리하는 많은 방법을 제공합니다.

+0

내가 게시하기 전에 그것을 보았습니다. 앞에서 말했듯이, 다른 라이브러리의 XML 형식을 지정하는 방법을 알고 있지만 코드에서 이미 공통적 인 구성을 사용하고 있으므로 두 가지 XML 라이브러리를 사용하지 않는 것이 좋습니다. – MattRS

+0

예, 해당 스레드에서 다른 XML 라이브러리가 아닌 표준 Java 라이브러리를 통해 형식화 된 XML 파일로 저장하는 방법을 제공합니다. apache-commons는 형식화 된 XML 파일을 출력하는 방법을 제공하지 않는 것 같습니다. – jumperchen

9

같은 문제가 발생했습니다. 오래 전에 질문을했지만 해결책을 공유하고 싶습니다.

XMLConfiguration 클래스에는 createTransformed라는 보호 된 메서드가 있습니다. 들여 쓰기는 right configuration에 의해 확장되고 설정되어야합니다.

public class ExtendedXMLConfiguration extends XMLConfiguration 
{ 
    public ExtendedXMLConfiguration(File file) throws ConfigurationException 
    { 
     super(file); 
    } 

    @Override 
    protected Transformer createTransformer() throws TransformerException { 
     Transformer transformer = super.createTransformer(); 
     transformer.setOutputProperty(OutputKeys.INDENT, "yes"); 
     transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "4"); 
     return transformer; 
    } 
} 
+0

생성자가 필요하지 않습니다. XMLConfiguration의 createTransformer가 들여 쓰기를 "yes"로 설정했지만 들여 쓰기 양이 누락되었습니다. – ezzadeen