Java解析多层次的XML

时间:2014-03-18 22:16:22

标签: java xml parsing

我有一个复杂的xml字符串,我必须解析我检索一些数据,这里是内容:

<root1>
    <root2>
        <A>something</A>
        <B>something</B>
        <C>
            <D>
                <GetE>DataE</GetE>
                <GetF>DataF</GetF>
                <G>something</G>
                <H>something</H>
                <I>
                    <J>
                      <GetK>DataK</GetK>
                      <GetL>DataL</GetL>
                    </J>
                </I>
            </D>
            <D>
                <GetE>DataE</GetE>
                <GetF>DataF</GetF>
                <G>something</G>
                <H>something</H>
                <I>
                    <J>
                      <GetK>DataK</GetK>
                      <GetL>DataL</GetL>
                    </J>
                </I>
            </D>
        </C>
     </root2>
</root1>

我想打印GetEGetFGetKGetL的内容:

例如:

GetE = DataE,GetF = DataF,GetK = DataK,GetL = DataL

GetE = DataE,GetF = DataF,GetK = DataK,GetL = DataL

...

要将我的String数据转换为XML,我使用此函数In Java, how do I parse XML as a String instead of a file?

请问好吗?

2 个答案:

答案 0 :(得分:0)

首先,检查更适用于您的案例的this answer。 XPath是一种方便易用的技术,可以提取您所寻求的信息,但性能要求可能会有所不同。

在您的情况下,xpath表达式将是::

"root1/root2/C/D/GetE/text()"
"root1/root2/C/D/GetF/text()"

但正如其他人所评论的那样,“root1 / root2 / C / D / GetE”不会返回单个节点,因此您必须决定如何表示信息。

答案 1 :(得分:0)

也许有一种更简单的方法,但SAXParser会做这项工作。