我正在尝试从Android创建XML文档,我遇到了一些问题。以下是我的一些代码:
XmlSerializer xml = Xml.newSerializer();
StringWriter writer = new StringWriter(); xml.setOutput(writer);
xml.startDocument("UTF-8", true);
xml.startTag("" , "EDbAuditoria");
xml.startTag("", "AFSeq"); xml.text(this.getAFSeq()); xml.endTag("", "AFSeq");
xml.startTag("", "Data"); xml.text(this.getData()); xml.endTag("", "Data");
这样可以正常工作并生成文件,但在检查文件时...标签之间没有换行符。下面是生成文件的一些行:
标签之间没有换行符
<?xml version='1.0' encoding='UTF-8' standalone='yes' ?><EDbAuditoria><AFSeq>LIPO20130709204106R43540</AFSeq><Data>09/07/2013</Data>
它应该被创建为......
<?xml version='1.0' encoding='UTF-8' standalone='yes' ?>
<EDbAuditoria>
<AFSeq>98184ESTAGIARIO22013020502:4423307</AFSeq>
<Data>05/02/2013</Data>
<Hora>02:44 pm</Hora>
<Auditor>ESTAGIARIO2</Auditor>
<Shopping>027</Shopping>
<Loja>108</Loja>
<Qtd>2</Qtd>
答案 0 :(得分:0)
换行符和其他空格在任何随机XML词汇表中都不一定无关紧要。如果您想要自动缩进,则必须明确告诉序列化程序添加它。
xml.setOutputFormat(new OutputFormat(“XML”,“UTF-8”,true));
答案 1 :(得分:0)
在我的代码中我使用
xml.setFeature("http://xmlpull.org/v1/doc/features.html#indent-output", true);
在startDocument
之后。那应该给你:
<?xml version='1.0' encoding='UTF-8' standalone='yes' ?>
<EDbAuditoria>
<AFSeq>98184ESTAGIARIO22013020502:4423307</AFSeq>
<Data>05/02/2013</Data>
<Hora>02:44 pm</Hora>
...
目前我无法在documentation中找到它,只有example code。但对我而言,它确实有效。