Android 如何解析这个xml文件?

Android 如何解析这个xml文件?,android,xml,xml-parsing,Android,Xml,Xml Parsing,如何在android中解析具有这种结构的文件 请帮忙 我尝试了很多,但是我无法在Android上解析这个文件 这是我的代码: 我的类名是XmlReader 我在onCreate()方法中使用这个类 公共类XmlReader { 列出季节; 私人赛季; 私有字符串文本; 公共XmlReader() { 季节=新阵列列表(); } 公众名单{ 回归季节; } 公共列表解析(InputStream为){ XmlPullParserFactory工厂=null; XmlPullParser=null

如何在android中解析具有这种结构的文件

请帮忙

我尝试了很多,但是我无法在Android上解析这个文件


这是我的代码: 我的类名是XmlReader 我在onCreate()方法中使用这个类

公共类XmlReader
{
列出季节;
私人赛季;
私有字符串文本;
公共XmlReader()
{
季节=新阵列列表();
}
公众名单{
回归季节;
}
公共列表解析(InputStream为){
XmlPullParserFactory工厂=null;
XmlPullParser=null;
试一试{
factory=XmlPullParserFactory.newInstance();
factory.setNamespaceAware(true);
parser=factory.newPullParser();
setInput(is,null);
int eventType=parser.getEventType();
while(eventType!=XmlPullParser.END_文档)
{
字符串标记名=parser.getName();
开关(事件类型)
{
case XmlPullParser.START_标记:
if(标记名.equalsIgnoreCase(“季节”))
{
季节=新季节();
season_id((Integer.parseInt(parser.getAttributeValue(0)));
season_名称(parser.getAttributeValue(1));
}
打破
case XmlPullParser.END_标记:
if(标记名.equalsIgnoreCase(“季节”))
{
季节。添加(季节);
}
else if(标记名.equalsIgnoreCase(“页面”))
{
setPage_id(Integer.parseInt(parser.getAttributeValue(0));
setPage_text(parser.getAttributeValue(1));
}
打破
违约:
打破
}
eventType=parser.next();
}
}
捕获(XmlPullParserException | IOE异常)
{
e、 printStackTrace();
}
回归季节;
}
}

您可能一直在寻找的是DOM解析器。DOM解析器可以将XML或HTML源解析为DOM文档。

试试这个

   try {
                InputStream mInputStream = getAssets().open("XmlData.xml");

                 XmlPullParserFactory xmlFactoryObject = XmlPullParserFactory.newInstance();
                 XmlPullParser myparser = xmlFactoryObject.newPullParser();

                myparser.setInput(mInputStream, null);


                int event = myparser.getEventType();
                while (event != XmlPullParser.END_DOCUMENT)  {
                    String name=myparser.getName();
                    switch (event){
                        case XmlPullParser.START_TAG:
                            break;

                        case XmlPullParser.END_TAG:
                            if(name.equals("page")){

                                Log.e("TAG",""+  myparser.getAttributeValue(null,"id"));
                                Log.e("Page content ",""+  myparser.getAttributeValue(null,"text"));

                            }
                            break;
                    }
                    event = myparser.next();
                }

            } catch (Exception e) {
                e.printStackTrace();
            }

你使用了什么进行解析?显示你的代码tried@mohammadkiani发布你的代码,
我尝试了很多
展示了具体的操作方法,我们将帮助修复它。你不应该要求完整的代码,我们只能帮助修复你的代码。请将你的代码添加到问题中。不是指向代码的链接。这对我没用,谢谢。该代码适用于mewelcome@mohammadkiani
public class XmlReader
{
List<Season> Seasons;
private Season season;
private String text;

public XmlReader()
{
    Seasons = new ArrayList<Season>();
}

public List<Season> getSeasons() {
    return Seasons;
}

public List<Season> parse(InputStream is){
    XmlPullParserFactory factory = null;
    XmlPullParser parser = null;
    try {
        factory = XmlPullParserFactory.newInstance();
        factory.setNamespaceAware(true);
        parser = factory.newPullParser();
        parser.setInput(is, null);

        int eventType = parser.getEventType();
        while(eventType != XmlPullParser.END_DOCUMENT)
        {
            String tagname = parser.getName();
            switch (eventType)
            {
                case XmlPullParser.START_TAG:
                    if (tagname.equalsIgnoreCase("season"))
                    {
                        season = new Season();

                        season.setSeason_id( (Integer.parseInt(parser.getAttributeValue(0)) ) );

                        season.setSeason_name( parser.getAttributeValue(1) );
                    }
                    break;
                case XmlPullParser.END_TAG:
                    if (tagname.equalsIgnoreCase("season"))
                    {
                        seasons.add(season);
                    }
                    else if (tagname.equalsIgnoreCase("page"))
                    {

                        season.setPage_id(Integer.parseInt(parser.getAttributeValue(0)));
                        season.setPage_text( parser.getAttributeValue(1) );
                    }
                    break;
                default:
                    break;
            }
            eventType=parser.next();
        }
    }
    catch (XmlPullParserException | IOException e)
    {
        e.printStackTrace();
    }
    return season;
}
}
   try {
                InputStream mInputStream = getAssets().open("XmlData.xml");

                 XmlPullParserFactory xmlFactoryObject = XmlPullParserFactory.newInstance();
                 XmlPullParser myparser = xmlFactoryObject.newPullParser();

                myparser.setInput(mInputStream, null);


                int event = myparser.getEventType();
                while (event != XmlPullParser.END_DOCUMENT)  {
                    String name=myparser.getName();
                    switch (event){
                        case XmlPullParser.START_TAG:
                            break;

                        case XmlPullParser.END_TAG:
                            if(name.equals("page")){

                                Log.e("TAG",""+  myparser.getAttributeValue(null,"id"));
                                Log.e("Page content ",""+  myparser.getAttributeValue(null,"text"));

                            }
                            break;
                    }
                    event = myparser.next();
                }

            } catch (Exception e) {
                e.printStackTrace();
            }