Java - 解析嵌套的xml文件并写入该文件

时间:2017-07-28 21:39:24

标签: java xml javax

我有一个.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

2 个答案:

答案 0 :(得分:2)

  

Java - 解析嵌套的xml文件并写入文件

一种简单的方法:

  1. 逐行读取BufferedReader.readLine(),直到找到嵌套的xml部分的开头 例如:<?xml version="1.0"?>

  2. 当您标识此行时,请在StringBuilder实例中添加每个读取行,直到遇到要分析的xml部分的结尾。例如,它的根元素的结束标记 这里:</Event>

  3. org.w3c.dom.Document中包含的String创建StringBuilder

    DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
    DocumentBuilder builder = factory.newDocumentBuilder();
    Document document = builder.parse(new InputSource(new StringReader( stringBuilder.toString())));

  4. 使用您首选的方式查找文档中的数据:dom,jdom,xpath等...

答案 1 :(得分:0)

你肯定需要看看Sax XML Parser。可以找到here

的教程 祝你好运