같은 문제가 발생했습니다. 오래 전에 질문을했지만 해결책을 공유하고 싶습니다.
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;
}
}
내가 게시하기 전에 그것을 보았습니다. 앞에서 말했듯이, 다른 라이브러리의 XML 형식을 지정하는 방법을 알고 있지만 코드에서 이미 공통적 인 구성을 사용하고 있으므로 두 가지 XML 라이브러리를 사용하지 않는 것이 좋습니다. – MattRS
예, 해당 스레드에서 다른 XML 라이브러리가 아닌 표준 Java 라이브러리를 통해 형식화 된 XML 파일로 저장하는 방법을 제공합니다. apache-commons는 형식화 된 XML 파일을 출력하는 방법을 제공하지 않는 것 같습니다. – jumperchen