【发布时间】:2015-03-04 15:13:30
【问题描述】:
我尝试使用以下代码读取我的应用创建的 XML 文件:
XmlPullParser xpp = factory.newPullParser();
xpp.setInput(new StringReader(data));
int eventType = xpp.getEventType();
while(eventType != XmlPullParser.END_DOCUMENT)
{
switch(eventType)
{
case XmlPullParser.START_TAG:
{
String tagName = xpp.getName();
// do something
break;
}
case XmlPullParser.TEXT:
{
// get text...
break;
}
case XmlPullParser.END_TAG:
{
// do something
break;
}
}
eventType = xpp.next();
}
但一开始,当 eventType 为 START_DOCUMENT 时,next() 函数会抛出异常:org.xmlpull.v1.XmlPullParserException: name expected (position:START_TAG @2:2 in java.io.StringReader@41084cc8)
你知道为什么吗?
这是我的 XML 文件:
<?xml version='1.0' encoding='UTF-8' standalone='yes' ?>
<0>
<createTime>1419453655800</createTime>
<editTime>1419453655800</editTime>
<color>2</color>
<text>ooooo</text>
</0>
<1>
<createTime>1419453586197</createTime>
<editTime>1419453605679</editTime>
<color>1</color>
<text>uuuuuuuuu</text>
</1>
<2>
<createTime>1419453358866</createTime>
<editTime>1419453597124</editTime>
<color>2</color>
<text>yyyyyyyyyy</text>
</2>
【问题讨论】:
-
您的 XML 文档格式不正确,因为它没有单个根元素。您应该在尝试解析它之前修复它。
-
@kjhughes 好的,感谢您粘贴 XML
-
那么,我应该将所有元素移动到一个虚拟根目录中,然后一切都会正常吗?我试试看
-
是的,您至少需要一个根元素。 (从技术上讲,它甚至不是没有单个根元素的 XML,它需要格式正确。)如果出现任何其他问题,请告诉我们。谢谢。
-
另外,让您的编号标签以 e1、e2 等字母开头。
标签: java android xml exception xmlpullparser