Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用XMLPullParser解析XML期间的XmlPullParserException_Java_Android - Fatal编程技术网

Java 使用XMLPullParser解析XML期间的XmlPullParserException

Java 使用XMLPullParser解析XML期间的XmlPullParserException,java,android,Java,Android,需要您的帮助来解决此问题: 正在尝试解析此xml- <LungProtocol><configuration name="FLUS Sitting"> <segment order="1" name="left upper anterior"> <segment order="2" name="left lower anterior"> </configuration> <configuration na

需要您的帮助来解决此问题: 正在尝试解析此xml-

<LungProtocol><configuration name="FLUS Sitting">   
    <segment order="1" name="left upper anterior">
    <segment order="2" name="left lower anterior">  
</configuration>
<configuration name="FLUS Supine">  
    <segment order="1" name="left upper anterior">
    <segment order="2" name="left lower anterior">
</configuration></LungProtocol>

请告诉我哪里出错。

在代码中进行以下两项更改:

  • 使xml有效。段标记未结束。它们应该是:

  • 删除行
    parser.require(XmlPullParser.START_标记,null,“configuration”)


  • 其他一切看起来都很好。我也可以运行您的代码。

    xml文档末尾是否应该有一个“”的结束标记(如“”)?是的,编辑了这个问题。我正在使用结束标记。不确定这是否是修复。但替换这一行听起来合乎逻辑:parser.require(XmlPullParser.START_标记,null,“configuration”);使用:parser.require(XmlPullParser.START_标记,null,“LungProtocol”);你能粘贴整个堆栈跟踪吗?或者至少是它抛出此异常的位置。org.xmlpull.v1.XmlPullParserException:expected:START_TAG{null}配置(位置:START_DOCUMENTnull@1:1在java.io中。InputStreamReader@42323800)org.kxml2.io.KXmlParser.require(KXmlParser.java:2056)controller.XmlPullParserHandler.parse(XmlPullParserHandler.java:35)在android.app.activity.performCreate(activity.java:5243)的android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)的activity.MainActivity.onCreate(MainActivity.java:33)
    public List<LungSegment> parse(InputStream is, String configuration) {  
           try {  
            XmlPullParserFactory factory = XmlPullParserFactory.newInstance();  
            factory.setNamespaceAware(true);  
            XmlPullParser  parser = factory.newPullParser();  
            segment = new LungSegment();
            parser.setInput(is, null);  
            parser.require(XmlPullParser.START_TAG, null, "configuration");
            int eventType = parser.getEventType();
            while (eventType != XmlPullParser.END_DOCUMENT) {  
                String tagname = parser.getName();  
                switch (eventType) {  
                case XmlPullParser.START_TAG:  
                    if(("configuration").equalsIgnoreCase(tagname) && parser.getAttributeValue(null, "name").equalsIgnoreCase(configuration)){
                        eventType = parser.next();
                        //eventType = parser.next();
                        tagname = parser.getName();
                        Log.v("XMLTAG", "configuration = "+configuration);
                    if (("segment").equalsIgnoreCase(tagname)) {  
                        // create a new instance of segment  
                          segment = new LungSegment();
                          segment.setSegmentName(parser.getAttributeValue(null, "name"));
                          segment.setSegmentOrder(Integer.parseInt(parser.getAttributeValue(null, "order")));
                    } 
                    }
                    break;  
    
                case XmlPullParser.END_TAG:  
                    if (tagname.equalsIgnoreCase("segment")) {  
                        // add segment object to list  
                        segments.add(segment);  
                    } else if (("configuration").equalsIgnoreCase(tagname) && parser.getAttributeValue(null, "name").equalsIgnoreCase(configuration)) {
                            return segments;
                    }  
                    break;   
                }  
                eventType = parser.next();  
            }  
    
        } catch (XmlPullParserException e) {e.printStackTrace();}   
        catch (IOException e) {e.printStackTrace();}  
    
        return segments;  
    }  
    
    org.xmlpull.v1.XmlPullParserException: expected: START_TAG {null}configuration (position:START_DOCUMENT null@1:1 in java.io.InputStreamReader@42323800)