2014-05-11 53 views
2

我想知道一个用于存储My XML标记和值的数据结构,以便我可以轻松地从代码中检索值,并且不必解析xml多次:用于存储XML解析值的数据结构

XML structure: 

<suite> 
    <loop> 
     <test> 
      <!-- comment1 --> 
      <step> 
       <action>CONNECT</action> 
       <request>sys</request> 
      </step> 
      <!-- comment2 --> 
      <step> 
       <action>abc</action>       
       <request>request</request> 
       <expectedResponse>enable</expectedResponse> 
       <validator>contains</validator> 
      </step> 
     </test> 
    </loop> 
</suite> 

我想存储在一个地方使用数据结构的值,可以有人建议的东西?

回答

1

我想使用数据结构在一个地方存储值,可以 有人建议的东西?

A类是一个数据结构,所以就做一个吧。

选择任何java xml序列化库,都有很多。这将允许你解析XML,生成类,反序列化它回到XML应该有需要。

如果这感觉像是一种矫枉过正,您可以手动解析xml并在您的自定义类中设置值。在你的情况下,我只是使用这个库。

+0

你能说得更清楚吗?我不懂诶 – Feroz

1

您需要使用marshall/unmarshall库。

开始创建一个与您的xml文档匹配的java类。要做到这一点,我建议你使用JAXB-2插件。这是一个maven插件,可以从xsd模式生成Java Class。您必须拥有您的xml对象遵循的架构。您只需将此xsd模式提供给插件,并为您创建Java类。如果你没有模式(你应该),你必须有必要的字段来存储你的XML的值。

一旦你有一个Java类,只需使用一个编组/解编库从XML中提取数据。其中最常用的是JAXB。

你可以按照文档解开xml的官方文档https://jaxb.java.net/tutorial/section_3_1-Unmarshalling-and-Using-the-Data.html#Unmarshalling