我从Web服务获取XML文本。我通过获取parser.setInput(con.getInputStream(),null);
成功加载了流XmlPullParser对象,其中解析器是我的XmlPullParser对象,con是我与URL的连接。
我正在阅读该流,但我不知道如何获取特定部分。这就是XML文件的样子:
`<response>
<list><category>(noun)</category><synonyms>order|war (antonym)</synonyms></list>
<list><category>(noun)</category><synonyms>harmony|concord|concordance</synonyms></list>
<list><category>(noun)</category><synonyms>public security|security</synonyms></list>
<list><category>(noun)</category><synonyms>peace treaty|pacification|treaty|pact|accord</synonyms></list>
</response>`
我想访问<synonyms>
代码中的文字,但不知道该怎么做。这就是我所拥有的:
int eventType = parser.getEventType();
while(eventType != XmlPullParser.END_DOCUMENT){
String name = parser.getName();
if(eventType == XmlPullParser.TEXT) {
stringToBeDisplayed.add(parser.getText()+"\n");
}
eventType = parser.next();
}
但上面的代码会在<category>
标记和我不想要的<synonyms>
内获取文字。我只希望<synonyms>
标记中包含的文字。
答案 0 :(得分:1)
做这样的事情
String tagValue = null, tagName = null;
while (eventType != XmlPullParser.END_DOCUMENT) {
switch (eventType) {
case XmlPullParser.TEXT:
tagValue = xmlPullParser.getText();
break;
case XmlPullParser.END_TAG:
tagName = xmlPullParser.getName();
if (tagName != null && tagName.toUpperCase().equals("SYNONYMS")) {
// do something with tagValue
stringToBeDisplayed.add(tagValue);
}
break;
}
}
答案 1 :(得分:0)