问题描述
这是解析xml文件时报的错误,但是能正常解析,org.xmlpull.v1.XmlPullParserException:attrvaluedelimitermissing!(position:START_TAG<fontcolor='1.0'>@1:445injava.io.InputStreamReader@18b537a2)当数据只有一条时不报错误,但是数据量多时就报了比如说<?xmlversion="1.0"encoding="utf-8"?><root><productinfo><pno>1</pno><pname>张三</pname></productinfo></root>这种情况不报错但是<?xmlversion="1.0"encoding="utf-8"?><root><productinfo><pno>1</pno><pname>张三</pname><pno>2</pno><pname>李四</pname></productinfo></root>这种情况就报错误了,下面是我的解析方法publicVectorsetcxresult(Stringxmlcontent){Vectorvc=newVector();KXmlParserparser=newKXmlParser();try{booleanbflag=true;ByteArrayInputStreambis=newByteArrayInputStream(xmlcontent.getBytes("UTF-8"));//InputStreamReaderreader=newInputStreamReader(bis);//parser.setInput(reader);parser.setInput(bis,"UTF-8");Stringlabel=null;Stringkey=null;Stringval=null;Hashtablemap=null;inteventType=parser.getEventType();while(bflag){switch(eventType){caseKXmlParser.START_DOCUMENT:label=parser.getName();break;caseKXmlParser.START_TAG:label=parser.getName();if(label.equals("productinfo")){map=null;map=newHashtable();}key=label;break;caseKXmlParser.END_TAG:label=parser.getName();if(key!=null&&key.equals(label)&&!label.equals("productinfo")&&!label.equals("root")){map.put(key,val);}if(label.equals("productinfo")){this.append(map.toString());vc.addElement(map);}break;caseKXmlParser.TEXT:val=parser.getText();break;caseKXmlParser.END_DOCUMENT:bflag=false;break;}eventType=parser.next();}map=null;}catch(Exceptione){e.printStackTrace();}returnvc;}在这行是第一次报的错误
解决方案
解决方案二:
<?xmlversion="1.0"encoding="utf-8"?>这里面的反斜杠用不着吧?你把生成的文件用记事本之类的打开看看
解决方案三:
你用writeUTF()和readUTF()试试
解决方案四:
<root><productinfo><pno>1</pno><pname>张三</pname></productinfo><productinfo><pno>2</pno><pname>李四</pname></productinfo></root>XML格式些的不对,改成上面的试试,
解决方案五:
三楼的的我格式对了是我贴错了不好意思
解决方案六:
学习关注
解决方案七:
刚学这个路过看一下