asc*_*sco 7 android xmlpullparser
我正在使用Android的XmlPullParser处理OpenStreetMap(.osm)文件.我遇到问题的部分是这样的:
<way id='-13264' action='modify' visible='true'>
<nd ref='-13252' />
<nd ref='-13251' />
<nd ref='-13249' />
</way>
Run Code Online (Sandbox Code Playgroud)
我需要在每个方向节点中使用nd节点,一次一个节点(这是关键),在这些节点之间创建一个精确的特定数据结构.似乎没有方便的方法来获取XmlPullParser中的一个节点的所有子节点,所以我在这些节点上尝试了很多嵌套的if/elseif-stuff,但无法使其工作.有人可以为我提供一些示例代码来处理节点的子节点,但保持类似父节点的子节点是分开的吗?
这是我解析这个问题的方法.您可以自由使用它,但您必须Way自己为该课程提供实施!:)
List<Way> allWays = new ArrayList<Way>();
Way way;
int eventType;
while((eventType = parser.getEventType())!=XmlPullParser.END_DOCUMENT){
if(eventType==XmlPullParser.START_TAG) {
if("nd".equals(parser.getName()) {
way.addNd(parser.getAttributeValue(0));
}
else if("way".equals(parser.getName()) {
way = new Way();
}
}
else if(eventType==XmlPullParser.END_TAG) {
if("way".equals(parser.getName()) {
allWays.add(way);
}
}
parser.next();
}
Run Code Online (Sandbox Code Playgroud)
当然,如果你遇到的xml有点不同,这个确切的代码可能无法正常工作.我将再次将其作为提问者的练习.
| 归档时间: |
|
| 查看次数: |
7269 次 |
| 最近记录: |