java案例-读取xml文件

需求

在这里插入图片描述

导入依赖

<dependencies>
    <!--   dom4j     -->
    <dependency>
        <groupId>dom4j</groupId>
        <artifactId>dom4j</artifactId>
        <version>1.6.1</version>
    </dependency>
</dependencies>

代码

  • SAXReader saxReader = new SAXReader(); 获取读取器
  • Document document = saxReader.read(file); 获取文档对象
  • Element rootElement = document.getRootElement(); 获取文档根元素
  • List elements = rootElement.elements(); 获取根元素下面的子元素
//1. 定义一个集合
List<Order> orderList = new ArrayList<>();

//2. 获取xml
SAXReader saxReader = new SAXReader();
//3. 获取文件对象 获取同一目录下的order.xml文件
File file = new File("demo/src/main/java/com/ruoyi/demo1/order.xml");
if (!file.exists()) {
   System.out.println("文件不存在");
   return;
}
//4. 解析xml
try{
   // 5. 获取Document对象
   Document document = saxReader.read(file);
   // 6. 获取根节点
   Element rootElement = document.getRootElement();
   // 7. 获取根节点下的所有子节点
   List<Element> elements = rootElement.elements();
   // 8. 遍历子节点
   for (Element element : elements) {
       // 9. 获取子节点的属性值
       int id = Integer.parseInt(element.attributeValue("id"));
       String name = element.elementText("name");
       DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
       LocalDateTime time = LocalDateTime.parse(element.elementText("time"), formatter);
       double price = Double.parseDouble(element.elementText("price"));
       // 10. 创建Order对象
       Order order = new Order(id, name, time, price);
       // 11. 添加到集合中
       orderList.add(order);
   }


}catch (Exception e){
   e.printStackTrace();
}

// 12. 按照时间排序
ArrayList<Order> timeDesc = orderList.stream().sorted((o1, o2) -> o1.getTime().compareTo(o2.getTime())).
       collect(Collectors.toCollection(ArrayList::new));
// 13. 输出
timeDesc.forEach(System.out::println);


//  使用stream流获取价格排序第低的订单
List<Order> priceDesc = orderList.stream().sorted((o1, o2) -> Double.compare(o1.getPrice(), o2.getPrice())).limit(1).collect(Collectors.toList());
System.out.println("价格最低的订单是:" + priceDesc.get(0));
  • 6
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是一个Java读取欧空局*.N1卫星数据文件的完整案例,包括如何引入外部文件。 首先,你需要在Java项目中引入GDAL库。你可以从GDAL的官方网站下载相应的Java绑定库,然后将它们添加到你的项目中。如果使用Maven,你可以在pom.xml文件中添加以下依赖项: ```xml <dependency> <groupId>org.gdal</groupId> <artifactId>gdal</artifactId> <version>2.4.2</version> </dependency> ``` 接下来,我们来看看如何读取*.N1卫星数据文件: ```java import org.gdal.gdal.Dataset; import org.gdal.gdal.gdal; public class ReadN1Image { public static void main(String[] args) { // 注册GDAL驱动 gdal.AllRegister(); // 打开数据集 String fileName = "path/to/your/n1/image"; Dataset ds = gdal.Open(fileName); // 获取图像宽度和高度 int width = ds.getRasterXSize(); int height = ds.getRasterYSize(); // 获取波段数 int bandCount = ds.getRasterCount(); // 打印图像信息 System.out.println("Width: " + width); System.out.println("Height: " + height); System.out.println("Band count: " + bandCount); // 关闭数据集 ds.delete(); } } ``` 在上面的代码中,我们首先使用gdal.AllRegister()方法注册GDAL驱动程序,然后打开指定的数据集。在这里,你需要将"path/to/your/n1/image"替换为你的*.N1卫星数据文件的实际路径。 接下来,我们获取图像的宽度、高度和波段数,并打印这些信息。最后,我们调用ds.delete()方法关闭数据集。 希望这个例子能帮助你读取*.N1卫星数据文件!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值