java - 类型列表需要未经检查的转换以符合列表
问题描述
我正在尝试使用 SAXReader 解析 xml 文件。我无法使用元素生成节点列表。IDE提示警告“List需要未经检查的转换才能符合List”
我尝试使用简单的 org.w3c.dom 解析器,解析 xml 文件没有问题,并且运行良好。但是使用 SAXReader 生成列表时出现问题。
这是 XML 脚本
<class>
<student rollno = "393">
<firstname>dinkar</firstname>
<lastname>kad</lastname>
<nickname>dinkar</nickname>
<marks>85</marks>
</student>
</class>
这是解析器
File inputFile = new File("input.xml");
SAXReader reader = new SAXReader();
Document document = reader.read( inputFile );
System.out.println("Root element :" + document.getRootElement().getName());
Element classElement = document.getRootElement();
List<Node> nodes = document.selectNodes("/class/student" );
System.out.println("----------------------------");
for (Node node : nodes) {
System.out.println("\nCurrent Element :"
+ node.getName());
System.out.println("Student roll no : "
+ node.valueOf("@rollno") );
System.out.println("First Name : "
+ node.selectSingleNode("firstname").getText());
IDE 在此行提示警告
List<Node> nodes = document.selectNodes("/class/student" );
控制台日志打印显示根元素但显示以下堆栈跟踪的第一个 sysout
Root element :class
Exception in thread "main" java.lang.NoClassDefFoundError: org/jaxen/NamespaceContext
at org.dom4j.DocumentFactory.createXPath(DocumentFactory.java:230)
at org.dom4j.tree.AbstractNode.createXPath(AbstractNode.java:207)
at org.dom4j.tree.AbstractNode.selectNodes(AbstractNode.java:164)
at domParsing.EgParser.main(EgParser.java:25)
Caused by: java.lang.ClassNotFoundException: org.jaxen.NamespaceContext
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
(EgParser.java:25) 是
List<Node> nodes = document.selectNodes("/class/student" );
解决方案
推荐阅读
- python - 模块导入良好实践
- pandas - 如何在熊猫df的列中找到具有不同值的第一行?
- r - 提取具有特定名称的变量并为所有文件循环
- node.js - 用于推送通知的 Cloud Firebase 函数
- c# - C#串行端口通信高速通信时丢失字节
- php - PHPUnit 9 支持将 expectException() 与 PHPUnit\Framework\Error\Error 一起使用已弃用
- android - 自定义服务器 jitsi meet with sdk on Android 不起作用
- php - PHP: shell_exec(); 与 cmd 工作不一样?[WIN10命令行]
- typescript - https.createServer 不工作 REST 服务器
- python - 将每个元组添加一个特定的数字