xml文件
<order>
<user_info>
<name type="string">订单1</name>
<address type="string">京东</address>
<phone type="string">15056932222</phone>
<good_list>
<goods_item>
<goods_name type="string">mate70</goods_name>
<goods_number type="int">1</goods_number>
<goods_price type="string">5999.0</goods_price>
</goods_item>
<goods_item>
<goods_name type="string">iPhone16promax</goods_name>
<goods_number type="int">1</goods_number>
<goods_price type="string">9999.0</goods_price>
</goods_item>
<goods_item>
<goods_name type="string">红富士苹果</goods_name>
<goods_number type="int">3</goods_number>
<goods_price type="string">99.0</goods_price>
</goods_item>
</good_list>
</user_info>
<user_info>
<name type="string">订单2</name>
<address type="string">淘宝</address>
<phone type="string">15956932231</phone>
<good_list>
<goods_item>
<goods_name type="string">草莓</goods_name>
<goods_number type="int">3</goods_number>
<goods_price type="string">99.0</goods_price>
</goods_item>
<goods_item>
<goods_name type="string">爱奇艺会员</goods_name>
<goods_number type="int">1</goods_number>
<goods_price type="string">30.0</goods_price>
</goods_item>
<goods_item>
<goods_name type="string">nike</goods_name>
<goods_number type="int">1</goods_number>
<goods_price type="string">999.0</goods_price>
</goods_item>
</good_list>
</user_info>
</order>
java实体类
Order
import java.util.List;
public class Order {
private List<UserInfo> userInfo;
public List<UserInfo> getUserInfo() {
return userInfo;
}
public void setUserInfo(List<UserInfo> userInfo) {
this.userInfo = userInfo;
}
@Override
public String toString() {
return "Order{" +
"userInfo=" + userInfo +
'}';
}
}
UserInfo
import java.util.List;
public class UserInfo {
private String name;
private String address;
private String phone;
private List<GoodsItem> goodList;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public List<GoodsItem> getGoodList() {
return goodList;
}
public void setGoodList(List<GoodsItem> goodList) {
this.goodList = goodList;
}
@Override
public String toString() {
return "UserInfo{" +
"name='" + name + '\'' +
", address='" + address + '\'' +
", phone='" + phone + '\'' +
", goodList=" + goodList +
'}';
}
}
GoodsItem
public class GoodsItem {
private String goodsName;
private int goodsNumber;
private String goodsPrice;
public String getGoodsName() {
return goodsName;
}
public void setGoodsName(String goodsName) {
this.goodsName = goodsName;
}
public int getGoodsNumber() {
return goodsNumber;
}
public void setGoodsNumber(int goodsNumber) {
this.goodsNumber = goodsNumber;
}
public String getGoodsPrice() {
return goodsPrice;
}
public void setGoodsPrice(String goodsPrice) {
this.goodsPrice = goodsPrice;
}
@Override
public String toString() {
return "GoodsItem{" +
"goodsName='" + goodsName + '\'' +
", goodsNumber=" + goodsNumber +
", goodsPrice='" + goodsPrice + '\'' +
'}';
}
}
解析xml文件并封装对象
import org.w3c.dom.*;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
public class Main {
public static void main(String[] args) {
try {
// Load the XML file
File xmlFile = new File("path/to/your/order.xml");
// Create a DocumentBuilder
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
// Parse the XML file to get the Document
Document document = builder.parse(xmlFile);
// Normalize the XML structure
document.getDocumentElement().normalize();
// Get the root element
Element root = document.getDocumentElement();
// Create an Order object
Order order = new Order();
// Parse user_info elements
List<UserInfo> userInfoList = new ArrayList<>();
NodeList userInfoNodes = root.getElementsByTagName("user_info");
for (int i = 0; i < userInfoNodes.getLength(); i++) {
Node userInfoNode = userInfoNodes.item(i);
if (userInfoNode.getNodeType() == Node.ELEMENT_NODE) {
Element userInfoElement = (Element) userInfoNode;
// Create a UserInfo object
UserInfo userInfo = new UserInfo();
// Parse name, address, and phone
userInfo.setName(userInfoElement.getElementsByTagName("name").item(0).getTextContent());
userInfo.setAddress(userInfoElement.getElementsByTagName("address").item(0).getTextContent());
userInfo.setPhone(userInfoElement.getElementsByTagName("phone").item(0).getTextContent());
// Parse good_list
List<GoodsItem> goodList = new ArrayList<>();
Element goodListElement = (Element) userInfoElement.getElementsByTagName("good_list").item(0);
NodeList goodsItemNodes = goodListElement.getElementsByTagName("goods_item");
for (int j = 0; j < goodsItemNodes.getLength(); j++) {
Node goodsItemNode = goodsItemNodes.item(j);
if (goodsItemNode.getNodeType() == Node.ELEMENT_NODE) {
Element goodsItemElement = (Element) goodsItemNode;
// Create a GoodsItem object
GoodsItem goodsItem = new GoodsItem();
goodsItem.setGoodsName(goodsItemElement.getElementsByTagName("goods_name").item(0).getTextContent());
goodsItem.setGoodsNumber(Integer.parseInt(goodsItemElement.getElementsByTagName("goods_number").item(0).getTextContent()));
goodsItem.setGoodsPrice(goodsItemElement.getElementsByTagName("goods_price").item(0).getTextContent());
// Add to the goodList
goodList.add(goodsItem);
}
}
// Set the goodList in UserInfo
userInfo.setGoodList(goodList);
// Add to the userInfoList
userInfoList.add(userInfo);
}
}
// Set the userInfoList in Order
order.setUserInfo(userInfoList);
// Print the parsed data
System.out.println(order);
} catch (Exception e) {
e.printStackTrace();
}
}
}