JAVA:读取和修改xml

时间:2018-04-02 21:19:49

标签: xml parsing jaxb

我需要读取xml文件并根据索引更新其某些属性的值。 (例如,Message.Person.Name =“XYX”,Message.Numbers.Number [1] = 2)

<Message>
  <Person>
     <Name>John</Name>
     <Country>USA</Country>
  </Person>
  <Numbers>
    <Number>1</Number>
    <Number>2</Number>
  </Numbers>
</Message>

xml结构每次都不同。有没有办法可以动态地将xml转换为Java对象并更改必要属性的值并转换回xml?请记住,我的xml结构没有任何特定的xsd。 我查看了JAXB和MOXy的示例,但似乎它们都需要xsd。

1 个答案:

答案 0 :(得分:1)

如果你的xml结构每次真的不同,那么它首先就没有一个稳定的xsd。

但是,如果它足够稳定(例如总是一个Message,包含Person元素和Numbers元素),那么Jackson可能是一个选项。它不需要xsd。

您必须使用getter和setter自己定义Message etc类,然后使用Jackson的XmlMapper类将xml读入对象。