3

我有一个 .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 文件并将输出写入平面 .txt 文件,如下所示:

ggg Athen DG800
ggg Athen SS500
ggg Athen TY158

你能帮助我并告诉我如何使用 javax DOM 解析器来做到这一点吗?我不知道如何开始 :( 这个常见的部分让我最困惑,因为在这种情况下我需要迭代这个文件 3 次以获得 3x " ggg Athen" 然后附加标签AlternateID

4

2 回答 2

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 等...

于 2017-07-28T21:56:00.790 回答
0

您肯定需要查看 Sax XML Parser。教程可以在这里找到

祝你好运

于 2017-07-28T21:43:41.577 回答