Java:解析和编写xml文件

Java:解析和编写xml文件,java,xml,xml-parsing,Java,Xml,Xml Parsing,我需要用Java解析一个xml文档并输出另一个xml文档 更具体地说,我在原始xml文件中有一个项目列表,我需要对它们进行分组,平均值,并输出几个平均值项目 我应该为此使用java库吗 谢谢解析xml并写入另一个xml文档最好使用JDOM。然而,使用JDOM进行分组和平均会很痛苦 您还可以使用JAXB从xml创建POJO,然后对POJO进行平均和分组,然后使用JAXB将POJO恢复为xml 如果目标XML具有不同的模式,则需要源XML,并且需要在POJO之间进行转换。最好的方法是使用库。在没有库

我需要用Java解析一个xml文档并输出另一个xml文档

更具体地说,我在原始xml文件中有一个项目列表,我需要对它们进行分组,平均值,并输出几个平均值项目

我应该为此使用java库吗


谢谢

解析xml并写入另一个xml文档最好使用JDOM。然而,使用JDOM进行分组和平均会很痛苦

您还可以使用JAXB从xml创建POJO,然后对POJO进行平均和分组,然后使用JAXB将POJO恢复为xml


如果目标XML具有不同的模式,则需要源XML,并且需要在POJO之间进行转换。

最好的方法是使用库。在没有库的情况下这样做意味着您将不得不编写代码来解析和创建xml。我建议你用。以下是Java XMl库的列表:

您可以使用DOM或SAX解析XMl文件。DOM允许您导航到每个xml项,而SAX基于解析器在解析文件时发出的事件。DOM通常更容易使用,但是因为它将整个xml文件加载到内存中,所以它不适用于大文件,在这种情况下,最好使用SAX。您可以在javax.xml.parsers包中找到这两个解析器。
您可以在这里找到这两种解析器的一些示例

您需要使用DOM或SAX解析器来使用Java解析XML文档

是Java XML编程API之一。它提供了验证和解析XML文档的功能

但是,如果您在决定正确的方法之前遵循这些链接,则会更好

对DOM或SAX感到困惑吗?
访问这里:


另外,推荐阅读

看看

它听起来很复杂,或者只是听起来很简单?现在我来看看,我需要的是聚合特定字段的项,并平均其他字段的数值。然后,用新的项替换原来的项(使用聚合项和平均值)。缺点是,如果您的XML结构很复杂,那么最终会产生大量POJO。看看JAXB是如何工作的,xml结构非常简单,只是一个xml元素列表,每个元素有6个子元素。所以你投票给波乔是因为平均值。那么我会选波乔。另外,如果我可以加入另一个API,请使用XMLUnit进行单元测试。:)DOM=JDOM吗?我还有另一个问题:由于我对所有项都是平均值,而且我只能通过解析XML文件逐步找到它们,所以我想知道是否应该将所有新的平均值项保存在内存中,直到我将它们输出到新的XML文件或not@PatrickJDOM是一个不同的项目,它提供了一个类似于DOM的API来解析XML文件。他们在他们的网站上说,他们的API比DOM Java API更易于使用,但我从未使用过它,所以我没有意见。我想如果你没有太多的项目,那么将项目保存在内存中是更简单的解决方案。如果空间是一个约束条件,您可能需要保留一个引用或其他东西,以便在完成创建部分后再次查找必要的项。@Patrick:DOM是W3C标准,它有多种实现:Xerces、Oracle XDK、,JDOM是它自己的项目。检查:我不相信这个列表目前正在维护中。它缺少几个选项,并且列出的一些解析器多年来都没有生成新版本。有关JAXB2的信息,请查看:,和