代码之家  ›  专栏  ›  技术社区  ›  yanchenko

使用XmlStreamWriter附加到XML

  •  1
  • yanchenko  · 技术社区  · 15 年前

    基本上,应用程序将集合的内容写入XML。我正在使用xmlstreamwriter( XMLOutputFactory.newInstance().createXMLStreamWriter(...) )为此目的。

    工作得很好,除了我不知道如何将数据附加到现有文件。不要真的喜欢先阅读所有的内容,将数据追加到内存中,然后重写。还是唯一的办法?

    3 回复  |  直到 15 年前
        1
  •  2
  •   Brian Clapper    15 年前

    如果您要附加一个顶级元素,那么您可能可以不必做您想做的事情。例如,如果您有此文件:

    <some_element>
      <nested_element>
        ...
      </nested_element>
    </some_element>
    

    你很可能会通过附加另一个 some_element 元素。

    但是,如果有一个外部级别的元素,那么您显然是被搞砸了,并且您必须附加一个 内部的 一级。例如,假设您要添加 某些元素 此文件的元素:

    <data>
      <some_element>
        <nested_element>
          ...
        </nested_element>
      </some_element>
    </data>
    

    一般来说,您最好先重新编写文档,然后再重写它。如果它很小,可以使用基于DOM的解析器;这很容易。如果文件很大,则使用基于SAX的文件。

        2
  •  3
  •   Phil    15 年前

    简单地附加到XML文件将导致XML格式错误。您应该构建DOM并附加您需要的新元素。

        3
  •  1
  •   Fernando Miguélez    15 年前

    另一种方法是构建一个新的XML文件,然后通过 XSLT transformations . 要应用XSLT样式表,应使用 Java XML Transformation API .