使用 JAXB 将 Xml 组件解组为 Java 对象

我已经完成了将 java 对象编组为 XML 元素的工作。现在我面临着使用 JAXB 将 XML 文件解组为 java 对象的困难。它类似于将 java 对象编组为 XML 吗?下面是我从外部 API 获得的 XML 文件。


<ShoppingMall>

  <ProductList>

    <product_info>

      <group_nm>electronic device</group_nm>

      <group_code>e001</group_code>

      <product_nm>computer</product_nm>

      <price>30000</price>

    </product_info>

    <product_info>

      <group_nm>living</group_nm>

      <group_code>lv002</group_code>

      <product_nm>bed</product_nm>

      <price>140000</price>

    </product_info>

    <product_info>

      <group_nm>Food</group_nm>

      <group_code>f001</group_code>

      <product_nm>pasta</product_nm>

      <price>10</price>

    </product_info>    

  </ProductList>

</ShoppingMall>

要将 XML 元素交换为 java 对象,我应该用 JAXB 做什么?


慕姐4208626
浏览 106回答 2
2回答

杨__羊羊

我想你想解组到 ShoppingMall 类。所以,你可能会写这样的东西。ShoppingMall shoppingMall = getShoppignMallByUnmarshal(your_xml);&nbsp;&nbsp;&nbsp; public static getShoppignMallByUnmarshal(&nbsp; &nbsp; &nbsp; String xml) throws JAXBException&nbsp; {&nbsp; &nbsp; JAXBContext jaxbContext = JAXBContext.newInstance(package.path.of.ShoppingClass.ObjectFactory.class);&nbsp; &nbsp; Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();&nbsp; &nbsp; return ((JAXBElement<ShoppingMall>) jaxbUnmarshaller.unmarshal(new StringReader(xml)))&nbsp; &nbsp; &nbsp; &nbsp; .getValue();&nbsp; }

侃侃尔雅

首先创建三个java类,ShoppingMall(ProductList 是此类中的一个 xml 元素)ProductList(product_info 是此类中的一个 xml 元素)product_info(group_nm、group_code、product_nm 和 price 是此类中的 xml 元素)然后试试这个,JAXBContext jaxbContext = JAXBContext.newInstance(ShoppingMall.class);Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();ShoppingMall shoppingMall = (ShoppingMall) jaxbUnmarshaller.unmarshal( new File("your_xml_file.xml") );
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java