2012-10-28 10 views
2

나는이 코드를 작성했습니다. 그것은 훌륭한 결과를 출력합니다. 그러나 출력 문자열에 문제가 있습니다.안드로이드 프로그래밍 XML 문자열 순서 태그를 얻는 방법

<?xml version='1.0' encoding='UTF-8' standalone='yes' ?><imagefile><image><name>Bla Bla</name></image></imagefile> 

그러나 나는이 같은 명령 출력을 원하는 :

public static String CreateIndexForImage() 
    throws IllegalArgumentException, IllegalStateException, IOException 
{ 
    String Image_Name = "Bla BLa"; 

    static XmlSerializer xmlSerializer = Xml.newSerializer(); 
    static StringWriter writer = new StringWriter(); 
    xmlSerializer.setOutput(writer); 

    xmlSerializer.startDocument("UTF-8", true); 

    xmlSerializer.startTag("", "imagefile"); 
    xmlSerializer.startTag("", "image"); 
    xmlSerializer.startTag("", "name"); 

    xmlSerializer.text(Image_Name); 

    xmlSerializer.endTag("", "name"); 
    xmlSerializer.endTag("", "image"); 
    xmlSerializer.endTag("", "imagefile"); 

    xmlSerializer.endDocument(); 

    return writer.toString(); 
} 

출력은 같은 것입니다

<?xml version='1.0' encoding='UTF-8' standalone='yes' ?> 
<imagefile> 
     <image> 
     <name>Bla BLa</name> 
     </image> 
</imagefile> 

는 XmlSerializer 클래스 또는 StringWriter를이 같이 작성하는 방법 또는 뭔가 있나요 수업? 그렇지 않으면 위와 같은 줄을 주문하는 다른 방법이 있습니다.

답변

2

그런 식으로 시도해 보셨나요?

serializer.setProperty(
"http://xmlpull.org/v1/doc/properties.html#serializer-indentation", " "); 

serializer.setProperty(
"http://xmlpull.org/v1/doc/properties.html#serializer-line-separator", "\n"); 

아직도 정상적으로 작동하는지 모르겠습니다. 그렇지 않으면 다음과 같이 시도해보십시오.

serializer.setFeature("http://xmlpull.org/v1/doc/features.html#indent-output", true); 
+0

답변 해 주셔서 감사합니다. 두 번째 제안은 정상적으로 작동합니다. 먼저 시도하지 않았습니다. :) – COvayurt