在 Java 中解析高级 XML [英] Parsing advanced XML in java

查看:24
本文介绍了在 Java 中解析高级 XML的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想解析如下所示的非常奇怪的 xml:

Hi I want to parse pretty strange xml looking like this:

<foo>
    <foo1>
        <foo2></foo2>
        <foo2></foo2>
        <foo2></foo2>
        <foo2></foo2>
        <foo2></foo2>
        <foo2></foo2>
        <foo2></foo2>
    </foo1>
</foo>

<foo>
    <foo1>
        <foo2></foo2>
        <foo2></foo2>
        <foo2></foo2>
        <foo2></foo2>
        <foo2></foo2>
        <foo2></foo2>
        <foo2></foo2>
    </foo1>
</foo>

当我使用本教程时,我无法从 foo2 获取值:

I cant get values from foo2 when I used this tutorial:

http://javarevisited.blogspot.com/2011/12/parse-xml-file-in-java-example-tutorial.html

但是如果我们有像 foo2 一样的参数就不行了

But it don't work if we have same parameters like foo2

推荐答案

//规范化你的 XML 然后通过那个 XML 创建一个 Document 然后按照下面的代码

//Normalize your XML then create a Document by that XML then follow the below code

NodeList nList = doc.getElementsByTagName("foo");
        for (int temp = 0; temp < nList.getLength(); temp++) { // loop for foo
            Node nodeTable = nList.item(temp);
            Element xmlFoo = (Element) nodeTable;
            if (nodeTable.getNodeType() == Node.ELEMENT_NODE) {
            NodeList nodeListFoo1 = xmlFoo.getElementsByTagName("foo1");
            for (int i = 0; i < nodeListFoo1.getLength(); i++) { // loop for foo1
                Node nodefoo2 = nodeListFoo1.item(i);
                Element elementfoo1 = (Element) nodefoo2;
                // Collect foo2 
                NodeList nodeListfoo2Name = elementfoo1.getElementsByTagName("foo2");
                for (int j = 0; j < nodeListfoo2Name.getLength(); j++) { //// loop for foo2
                    Node nodefoo2Name = nodeListfoo2Name.item(j);
                    Element elementfoo2Name = (Element) nodefoo2Name;
                    //TODO: write code here, what you want to collect from foo2
                    }
                }
            }
        }

这篇关于在 Java 中解析高级 XML的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆