如何使用XmlPullParser解析XML?

问题描述 投票:2回答:1

我用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(); }

java android xml xmlpullparser
1个回答
1
投票
经过大量研究,我意识到我不能在Dscp值中使用

© www.soinside.com 2019 - 2024. All rights reserved.