XmlPullParser解析标签内

用户名

那是我的xml文件:

    <name>John</name>
    <currency>
    <euro>1</euro>
    <dollar>1</dollar>
    </currency>
    <name>Jordan</name>
    <currency>
    <euro>2</euro>
    <dollar>2</dollar>
    </currency>

我的Java parseXML()方法如下所示:

public void parseXML() throws XmlPullParserException, IOException,
        NullPointerException {
    XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
    factory.setNamespaceAware(true);
    XmlPullParser xpp = factory.newPullParser();
File file = new File("in.xml");

FileInputStream fis = new FileInputStream(file);
xpp.setInput(new InputStreamReader(fis));

int eventType = xpp.getEventType();
while (eventType != XmlPullParser.END_DOCUMENT) {
    if (eventType == XmlPullParser.START_TAG) {

        String tag = xpp.getName();

        Currency c = new Currency();
        if (tag.equals("euro")) {
            eventType = xpp.next();
            c.setEuro(Integer.parseInt(xpp.getText()));

        }
        if (tag.equals("dollar")) {
            eventType = xpp.next();
            c.setDollar(Integer.parseInt(xpp.getText()));
        }

        if (tag.equals("name")) {
            eventType = xpp.next();
            nameList.add(xpp.getText());

        }

如何解析标签eurodollar内部currency标签?我不知道该怎么做。任何人都可以帮助我解决这个问题吗?我在Google中寻找它,但没有得到我的解决方案。

Ben

您可能想看一下Android Developers网站上的XML Pull Parser教程这是根据该教程改编的解决方案的部分概述。

首先创建一个遍历文档并查找您感兴趣的顶级标签的方法:

private void readDocument(XmlPullParser parser) throws XmlPullParserException, IOException {
    while (parser.next() != XmlPullParser.END_TAG) {
        if (parser.getEventType() != XmlPullParser.START_TAG) {
            continue;
        }
        String name = parser.getName();
        if (name.equals("name")) {
            readName(parser);
        } else if (name.equals("currency")) 
               readCurrency(parser);
        else {
            skip(parser);
        }
    }  
}

然后使用自己的方法处理每个标签,并根据需要重复该过程:

private void readCurrency(XmlPullParser parser) throws XmlPullParserException, IOException {
    parser.require(XmlPullParser.START_TAG, ns, "currency");
    while (parser.next() != XmlPullParser.END_TAG) {
        if (parser.getEventType() != XmlPullParser.START_TAG) {
            continue;
        }
        String name = parser.getName();
        if (name.equals("euro")) {
            euro = readEuro(parser);
        } else if (name.equals("dollar")) {
            dollar = readDollar(parser);
        } else {
            skip(parser);
        }
    }
}

// Read in the content of the Euro element.
private String readEuro(XmlPullParser parser) {
    return readText(parser);
}

我省略了本教程中详细介绍skip()readText()方法,显然,您还希望添加代码以某种方式存储您读取的数据。但是希望可以使您了解如何构造解析器以处理嵌套元素。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用XmlPullParser解析XML

来自分类Dev

XmlPullParser未关闭标签忽略

来自分类Dev

XmlPullParser:提取Tag中的标签

来自分类Dev

如何使用XmlPullParser解析属性?

来自分类Dev

使用XmlPullParser解析复杂的XML

来自分类Dev

使用XSL解析XML内的标签

来自分类Dev

通过XmlPullParser用标签文本填充Hashmap

来自分类Dev

如何使用XmlPullparser解析嵌套的元素?

来自分类Dev

android XmlPullParser将xml解析为Listview

来自分类Dev

使用Android XMLPullParser导航/解析XML

来自分类Dev

使用Android XMLPullParser导航/解析XML

来自分类Dev

XmlPullParser或JSoup用于在Android中解析HTML

来自分类Dev

Javascript:解析xml以在节点内获取匹配的标签值

来自分类Dev

通过jQuery解析xml获取标签内的内容

来自分类Dev

解析XML并在标签的value属性内获取数据

来自分类Dev

如何解析脚本标签内的json var

来自分类Dev

Android中使用XMLPullParser遇到XML嵌套标签的困难

来自分类Dev

如何在Android中使用XmlPullParser解析为<media:thumbnail>?

来自分类Dev

Java Android-XmlPullParser-如何重新从头开始解析?

来自分类Dev

在Android中使用XMLPullParser解析本地XML文件

来自分类Dev

在标签内匹配标签

来自分类Dev

如何使用PHP解析<li标签内的<名称和<image src =?

来自分类Dev

使用Python解析XML:保留属性内的文本,同时删除属性周围的标签

来自分类Dev

在 index.html.erb 文件中的 script 标签内解析 ruby 哈希

来自分类Dev

解析未封闭的}标签

来自分类Dev

解析XML中的标签

来自分类Dev

解析分层XML标签

来自分类Dev

XPath从/ a标签解析“ href”?

来自分类Dev

解析标签之间的单词