仅在特定标记中解析xml字段

时间:2013-05-07 15:51:07

标签: android xml-parsing

我正在尝试在flickr中解析xml feed。 API给出了这样的答案

blah-blah-blah
qweqweqweq
<title>qfasf</title>

<entry>
<title>Hello</title>
blah-blah
</entry>

我的代码

while (parser.getEventType() != XmlPullParser.END_DOCUMENT) {
            switch (parser.getEventType()) {
            case XmlPullParser.START_TAG:
                if (parser.getName().equalsIgnoreCase("title")) {
                    image.imgTitle = parser.nextText();
                    Log.e(LOG_TAG, image.getImgTitle());
                }
                break;
            case XmlPullParser.END_TAG:
                if (parser.getName().equalsIgnoreCase("entry")) {

                }
            default:
                break;
            }
            parser.next();

但它正在解析文本中的所有标题。如何让它只解析条目标题? 还有人质疑如何解析标签

中的属性(href)
 <link rel="enclosure" type="image/jpeg" href="http://farm8.staticflickr.com/7297/8716931515_3e8d0826ff_b.jpg" />

2 个答案:

答案 0 :(得分:0)

Document doc = db.parse(document);
NodeList name = doc.getElementsByTagName("title");
Element line = (Element) name.item(0);
System.out.println("Name: " + getCharacterDataFromElement(line));

这种方式更清洁:

DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document document = db.parse(new File("input.xml"));
NodeList nodeList = document.getElementsByTagName("title");

你有你的nodeList,可以随心所欲地做任何事情(拿文本......)

答案 1 :(得分:0)

我想XPath是你的朋友。您可能应该在谷歌上更多地了解XPath教程。 例如,您可能希望看到的一个链接是this