2011-11-01 45 views
2

我已经使用JDOM在任何XML文件中执行xml数据输入&更新,但现在我试图使用JAXB代替JDOM,但遇到一些困难。JAXB Vs JDOM:是否有可能使用JAXB更新xml文件

因为我知道编组&在jaxb反编组,但是当涉及到在指定位置输入新数据到xml(node),我发现困难。例如for new entry Japan where id = Asia

<file> 
    <parent> 
     <node id="Asia"> 
      <name>India</name> 
      <name>China</name> 
     </node> 
     <node id="Europe"> 
      <name>UK</name> 
     </node> 
    </parent> 
</file> 

有没有人有想法。

回答

3

如果我没有弄错JAXB和JDOM和完全不同的东西。 JAXB会将java对象序列化为XML格式,反之亦然。 JDOM只读入XML文件并将其存储在DOM树中,然后可以使用它来修改xml本身。

以这种方式使用JAXB就像试图在运行时为类添加一个新变量。它不能做到。 (至少据我所知)。

+0

哦,我没有太多的想法,但我想解组(编译为xml文件并将其转换为java对象)并在运行时添加新对象,最后将marshall添加到xml文件,但我认为你是对的这就是为什么我无法做到这一点。谢谢。 – user1010399

+4

@ExtremeCoder - 在某些方面,JAXB和JDOM是相似的,因为它们都将XML读取到内存表示中。您可以将JAXB模型看作是一个类型化的DOM,将JDOM模型看作是一个无类型的DOM。由于JDOM是无类型的,你可以很容易地添加你想要的任何节点,但JAXB在添加对应于映射字段/属性和类型的新数据时没有问题。 –

+0

@BlaiseDoughan:我想知道,在xml文件中使用JAXB作为新的数据输入是有效的,还是应该使用JDOM?我知道可以使用Jaxb和JDOm添加数据,但哪一个更好? – user1010399