Android XMLSerializer命名空间异常
我正在使用XMLSerializer编写xml,但我经常遇到一个无法解释太多的异常,您能帮我吗Android XMLSerializer命名空间异常,android,xml,Android,Xml,我正在使用XMLSerializer编写xml,但我经常遇到一个无法解释太多的异常,您能帮我吗 09-25 10:46:31.733: WARN/System.err(23654): java.lang.IllegalArgumentException: </{}titleid> does not match start 09-25 10:46:31.944: WARN/System.err(23654): at org.kxml2.io.KXmlSerializer.end
09-25 10:46:31.733: WARN/System.err(23654): java.lang.IllegalArgumentException: </{}titleid> does not match start
09-25 10:46:31.944: WARN/System.err(23654): at org.kxml2.io.KXmlSerializer.endTag(KXmlSerializer.java:504)
09-25 10:46:31.733:WARN/System.err(23654):java.lang.IllegalArgumentException:与开始不匹配
09-25 10:46:31.944:WARN/System.err(23654):位于org.kxml2.io.KXmlSerializer.endTag(KXmlSerializer.java:504)
以下KXmlSerializer.java中发生异常
public XmlSerializer endTag(String namespace, String name)
throws IOException {
if (!pending)
depth--;
// if (namespace == null)
// namespace = "";
if ((namespace == null && elementStack[depth * 3] != null)
|| (namespace != null && !namespace
.equals(elementStack[depth * 3]))
|| !elementStack[depth * 3 + 2].equals(name))
throw new IllegalArgumentException("</{" + namespace + "}"
+ name + "> does not match start");
公共XmlSerializer endTag(字符串名称空间、字符串名称)
抛出IOException{
如果(!待定)
深度--;
//if(命名空间==null)
//名称空间=”;
if((名称空间==null&&elementStack[depth*3]!=null)
||(名称空间!=null&&!名称空间
.equals(elementStack[depth*3]))
||!elementStack[depth*3+2].equals(name))
抛出新的IllegalArgumentException(“与开始不匹配”);
有什么想法吗
private String writeXml(List<Message> messages){
XmlSerializer serializer = Xml.newSerializer();
StringWriter writer = new StringWriter();
try {
serializer.setOutput(writer);
serializer.startDocument("UTF-8", true);
serializer.startTag("", "messages");
serializer.attribute("", "number", String.valueOf(messages.size()));
for (Message msg: messages){
serializer.startTag("", "message");
serializer.attribute("", "date", msg.getDate());
serializer.startTag("", "title");
serializer.text(msg.getTitle());
serializer.endTag("", "title");
serializer.startTag("", "url");
serializer.text(msg.getLink().toExternalForm());
serializer.endTag("", "url");
serializer.startTag("", "body");
serializer.text(msg.getDescription());
serializer.endTag("", "body");
serializer.endTag("", "message");
}
serializer.endTag("", "messages");
serializer.endDocument();
return writer.toString();
} catch (Exception e) {
throw new RuntimeException(e);
}
}
私有字符串writeXml(列出消息){
XmlSerializer serializer=Xml.newSerializer();
StringWriter编写器=新的StringWriter();
试一试{
serializer.setOutput(writer);
serializer.startDocument(“UTF-8”,true);
serializer.startTag(“,”消息”);
serializer.attribute(“,”number“),String.valueOf(messages.size());
用于(消息消息:消息){
serializer.startTag(“,”消息”);
属性(“,”日期“,msg.getDate());
serializer.startTag(“,”标题“);
serializer.text(msg.getTitle());
serializer.endTag(“,“title”);
serializer.startTag(“,“url”);
text(msg.getLink().toExternalForm());
serializer.endTag(“,“url”);
serializer.startTag(“,“body”);
serializer.text(msg.getDescription());
serializer.endTag(“,“body”);
serializer.endTag(“,“message”);
}
serializer.endTag(“,”消息”);
serializer.endDocument();
返回writer.toString();
}捕获(例外e){
抛出新的运行时异常(e);
}
}
上述示例完全正确,但我使用的实际代码有两个相同的EndTag,没有启动(startTag)第二个标记
我的错误
谢谢