2016-07-04 3 views
0

Я пытаюсь добиться этого с помощью XmlSerializer:Добавление простого текста в XML с помощью XmlSerializer

<?xml version="1.0" encoding="utf-8"?> 
<!DOCTYPE tv SYSTEM "xmltv.dtd"> 

<tv> 
    <channel id="com.example.android.sampletvinput.2-1" repeat-programs="true"> 
     <display-name>Google</display-name> 
     <display-number>2-1</display-number> 
     <icon src="http://storage.googleapis.com/android-tv/images/google.png" /> 
    </channel> 

Я уже получаю в основном все это, за исключением

<!DOCTYPE tv SYSTEM "xmltv.dtd"> 

Если я пытаюсь добавить он использует serializer.text, он просто возвращает &lt;!DOCTYPE tv SYSTEM "xmltv.dtd"&gt;

Как подойти к этому, чтобы иметь точную копию?

Код:

private static String xmlCreate() { 
     XmlSerializer serializer = Xml.newSerializer(); 
     StringWriter writer = new StringWriter(); 
     try { 
      serializer.setOutput(writer); 
      serializer.startDocument("UTF-8", false); 
      serializer.startTag("","<!DOCTYPE tv SYSTEM \"xmltv.dtd\">"); 
      serializer.startTag("", "tv"); 
      //serializer.setPrefix("id", "0000"); 
      serializer.startTag("", "channel"); 
      serializer.attribute("", "id", "0000"); 
      serializer.attribute("", "repeat-programs", "true"); 

      serializer.startTag("", "display-name"); 
      serializer.text("GOOGLE"); 
      serializer.endTag("", "display-name"); 

      serializer.startTag("", "display-number"); 
      serializer.text("1111"); 
      serializer.endTag("", "display-number"); 

      serializer.endTag("", "channel"); 
      serializer.endTag("", "tv"); 
      serializer.endDocument(); 
      Log.d(TAG,"DOCUMENT: " + writer.toString()); 
      return writer.toString(); 
     } catch (Exception e) { 
      throw new RuntimeException(e); 
     } 

ответ

0

Я думаю, вы должны попробовать использовать Символьные данные с пометкой раздел, который означает, что данные в теге должны интерпретироваться как обычный текст, а не XML. Это будет похоже на то, что

<![CDATA[ 
.. your xml .. 
]]> 
1

Я нашел ответ. Используя serializer.docdecl ("TV SYSTEM "xmltv.dtd") создает

<!DOCTYPE tv SYSTEM "xmltv.dtd">

Смежные вопросы