Программирование на Android Как получить упорядоченные теги XML

Я написал этот код. Он отлично работает. Но у меня проблемы с его выходной строкой.

   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>

Но я хочу упорядочить вывод так:

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

Есть ли метод или что-то подобное для записи в классе XmlSerializer или классе StringWriter? В противном случае я могу сделать это другим способом, чтобы заказать строки, как указано выше.

1 ответ

Решение

Вы пробовали что-то подобное?

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);
Другие вопросы по тегам