我有一个.xml文件,如下所示:
<?xml version="1.0"?>
<Event>
<Issue>ggg</Issue>
<City>Athen</City>
<Group>
<AlternateIdentification>
<AlternateID>DG800</AlternateID>
<AlternateIDType>GoA</AlternateIDType>
</AlternateIdentification>
<AlternateIdentification>
<AlternateID>SS500</AlternateID>
<AlternateIDType>SDD</AlternateIDType>
</AlternateIdentification>
<AlternateIdentification>
<AlternateID>TY158</AlternateID>
<AlternateIDType>YTU</AlternateIDType>
</AlternateIdentification>
</Group>
</Event>
我想解析.xml文件并将输出写入flat .txt文件,其行如下所示:
ggg Athen DG800
ggg Athen SS500
ggg Athen TY158
你能帮助我并告诉我如何用javax DOM解析器做到这一点吗?我不知道如何开始:(这个常见的部分让我感到困惑,因为我需要在这种情况下迭代这个文件3次以获得3x“ggg Athen
”然后额外的标记AlternateID
?
答案 0 :(得分:2)
Java - 解析嵌套的xml文件并写入文件
一种简单的方法:
逐行读取BufferedReader.readLine()
,直到找到嵌套的xml部分的开头
例如:<?xml version="1.0"?>
当您标识此行时,请在StringBuilder
实例中添加每个读取行,直到遇到要分析的xml部分的结尾。例如,它的根元素的结束标记
这里:</Event>
从org.w3c.dom.Document
中包含的String
创建StringBuilder
:
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document document = builder.parse(new InputSource(new StringReader( stringBuilder.toString())));
使用您首选的方式查找文档中的数据:dom,jdom,xpath等...
答案 1 :(得分:0)
你肯定需要看看Sax XML Parser。可以找到here
的教程 祝你好运