使用XmlPullParserFactory在android中解析Xml
对于名称相同但事件类型不同的节点,我不知道如何解析。感谢您的帮助 首先,您可以这样声明一个内部类:使用XmlPullParserFactory在android中解析Xml,android,xml,parsing,xml-parsing,xmlpullparser,Android,Xml,Parsing,Xml Parsing,Xmlpullparser,对于名称相同但事件类型不同的节点,我不知道如何解析。感谢您的帮助 首先,您可以这样声明一个内部类: if(myparser.getName().equalsIgnoreCase("tagname")){ //do something } 然后,解析代码: static class Track { String event; String url; } List allTracks=new
if(myparser.getName().equalsIgnoreCase("tagname")){
//do something
}
然后,解析代码:
static class Track {
String event;
String url;
}
List allTracks=new ArrayList();
require(XmlPullParser.START_标记,null,“MyEvents”);
while(myparser.next()!=XmlPullParser.END_标记){
if(myparser.getEventType()!=XmlPullParser.START_标记){
继续;
}
String name=myparser.getName();
如果(名称等于(“跟踪”)){
String event=myparser.getAttributeValue(0);//我假设只有一个
require(XmlPullParser.START_标记,null,“跟踪”);
字符串url=null;
if(myparser.next()==XmlPullParser.TEXT){
url=parser.getText();
myparser.nextTag();
}
轨道=新轨道();
track.event=事件;
track.url=url;
所有曲目。添加(曲目);
}
}
这并不完美,但应该得到一个曲目列表,每个曲目都有各自的url和事件。看起来您只需要通过解析器查看处理属性和过滤的方法。看看方法。if(parser.getAttributeValue(“second”,null)!=null){//do something}像这样的事情吗?非常感谢你及时的帮助和这个片段。这很有帮助。
static class Track {
String event;
String url;
}
List<Track> allTracks = new ArrayList<Track>();
myparser.require(XmlPullParser.START_TAG, null, "MyEvents");
while (myparser.next() != XmlPullParser.END_TAG) {
if (myparser.getEventType() != XmlPullParser.START_TAG) {
continue;
}
String name = myparser.getName();
if (name.equals("Tracking ")) {
String event = myparser.getAttributeValue(0); // I'm supposing that there is just one
myparser.require(XmlPullParser.START_TAG, null, "Tracking ");
String url = null;
if (myparser.next() == XmlPullParser.TEXT) {
url = parser.getText();
myparser.nextTag();
}
Track track = new Track();
track.event = event;
track.url = url;
allTracks.add(track);
}
}