java - 使用 Java 按字段名称解析 XML
问题描述
我想解析一个 XML 文件,但我无法获取每个字段的值。有人可以帮忙吗?
我可以获取每个字段的名称,但找不到获取每个字段值的方法。
我的 XML 文件的结构是这样的。
<record>
<field name="Name" key="DEU">Germany</field>
<field name="Country">Germany</field>
<field name="Year">1960</field>
<field name="Value">72814900</field>
<field name="Category">Europe</field>
</record>
<record>
<field name="Name" key="DEU">Germany</field>
<field name="Country">Germany</field>
<field name="Year">1961</field>
<field name="Value">73377632</field>
<field name="Category">Europe</field>
</record>
我的解析代码:
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder documentBuilder = factory.newDocumentBuilder();
Document document = documentBuilder.parse(file);
NodeList list = (NodeList) document.getElementsByTagName("field");
Map<String, String> data = new HashMap<>();
for(int i = 0; i < list.getLength(); i++) {
Element element = (Element)list.item(i);
String nameAttribute = element.getAttribute("name");
//String firstname = element.getElementsByTagName("firstname").item(0).getTextContent();
String firstname = element.get;
data.put(nameAttribute, "value"); <-- my problem is the "value" part
}
for(Map.Entry field : data.entrySet()) {
System.out.println(field.getKey() + ": " + field.getValue());
}
解决方案
推荐阅读
- python-3.x - *args 在 list() 函数的情况下如何工作?
- html - 当我在其他 div 中有 div 时,我不能让它们粘在顶部或底部
- node.js - IntelliJ:使用 jest 和 Vue.js2 在断点处停止执行单个文件组件
- javascript - 使用 JavaScript 以编程方式调度键盘(例如按键)事件
- amazon-ecs - 在具有 Aurora 无服务器 (PGSQL) 的 ECS Fargate 上使用 rubyagent 在 NewRelic 上进行数据库监控不起作用
- html5-video - 有没有办法使用 HTML5 视频标签在全屏模式下平滑地从一个视频源淡化到另一个视频源?
- python - BeautifulSoup 没有提取所有页面
- java - @Path 有效,但 @RequestMapping 没有 Java Spring Boot
- delphi - 如何将 4 字节字符串转换为 unicode 表情符号?
- c++ - 为什么复制构造函数被调用两次?C++