我用XmlPullParser读取了一个Xml文件,但是当涉及到[[Dscp时,它给出了异常(未定义的实体ref(java.io.InputStreamReader@4cb5258中的位置:TEXT @ 817:4))。
i读者在此镜头之前阅读了另一幅这样的镜头直到这一切都OK。当我从xml中删除Dsec时,一切正常,并且我读取了所有xml文件。当我用Dsec读取xml时,此镜头中出现异常之前的镜头是这样的镜头
<Shot>
<ShotGUID>59AA1C15D3384B5691FBFB40B0FE38BD</ShotGUID>
<Title>##Step 2-Categories of Projects</Title>
<StartTime>00:00:40.00</StartTime>
<EndTime>00:00:00.00</EndTime>
<FileName>Shot0042.jpg</FileName>
<Dscp>Step 2-Categories of Projects
Aggregate project plan identifies four separate categories of projects:
Derivative projects … those that are only incrementally different from existing offerings
Platform projects … major departures from existing offerings … the next generation
Breakthrough projects … involving a newer technology … possibly a “disruptive” technology
R&D projects … “blue sky” or visionary endeavors
</Dscp>
<Footer></Footer>
</Shot>
这是我的代码:
XmlPullParserFactory parserFactory; parserFactory = XmlPullParserFactory.newInstance(); XmlPullParser parser = parserFactory.newPullParser(); ByteArrayInputStream byteArrayInputStreamXmlData = new ByteArrayInputStream(bufferXMLData); parser.setFeature(XmlPullParser.FEATURE_PROCESS_NAMESPACES, false); parser.setInput(byteArrayInputStreamXmlData, "UTF-8"); List<PageModel> pages = new ArrayList<>(); int eventType = parser.getEventType(); PageModel current = null; while (eventType != XmlPullParser.END_DOCUMENT) { String eltName = null; switch (eventType) { case XmlPullParser.START_TAG: eltName = parser.getName(); if (eltName.equals("Shot")) { current = new PageModel(); pages.add(current); } else if (current != null) { switch (eltName) { case "ShotGUID": current.setShotGUID(parser.nextText()); break; case "StartTime": current.setStartTime(parser.nextText()); break; case "EndTime": current.setEndTime(parser.nextText()); break; case "FileName": current.setFileName(parser.nextText()); break; case "Dscp": current.setDscp(parser.nextText()); case "Footer" : current.setFooter(parser.nextText()); break; } } break; } eventType = parser.next(); }
&