java - XML - 使用 DOM 解析元数据属性
问题描述
需要有人帮助解析下面的这个例子。例如,我需要获取“Exchange”属性的值。非常感激。铝。
XML 内容,
<?xml version="1.0" encoding="UTF-8"?>
<History>
<Metadata>
<MetadataType FormalName="Keywords" />
<Property FormalName="CategoryKeywords" Value="Photo/Multimedia" />
<Property FormalName="CountryKeywords" Value="UK" />
<Property FormalName="RegKeywrd" Value="Europe" />
</Metadata>
<Metadata>
<MetadataType FormalName="Securities Id" />
<Property FormalName="Ticker Symbol" Value="ABC" />
<Property FormalName="Exchange" Value="London" />
</Metadata>
</History>
解决方案
尝试以下解决方案,
public class DomParser {
public static void main(String[] args) {
try {
File inputFile = new File("Test.xml");
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document document = dBuilder.parse(inputFile);
document.getDocumentElement().normalize();
NodeList nodeList = document.getElementsByTagName("Property");
for (int temp = 0; temp < nodeList.getLength(); temp++) {
Node node = nodeList.item(temp);
if (node.getNodeType() == Node.ELEMENT_NODE) {
Element element = (Element) node;
System.out.println("Property (FormalName) : " + element.getAttribute("FormalName") +
", Value : " + element.getAttribute("Value"));
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
输出,
Property (FormalName) : CategoryKeywords, Value : Photo/Multimedia
Property (FormalName) : CountryKeywords, Value : UK
Property (FormalName) : RegKeywrd, Value : Europe
Property (FormalName) : Ticker Symbol, Value : ABC
Property (FormalName) : Exchange, Value : London
推荐阅读
- api - 如何使用空手道工具和特征文件比较包含数组的 2 个 JSON 对象
- bash - 签出 git 分支时文件名中的非法字节序列
- c++ - Windows C++ UWP:等待 XX 毫秒,直到事件发生
- powershell - 如何获取 AD 组的已启用和未过期帐户成员的数量
- php - 如何使用正则表达式和 PHP 从包含背景图像的 CSS 文件中查找所有类名或 id?
- android - DJI-SDK 解析失败:Lorg/apache/http/params/BasicHttpParams;
- ios - 将 JSON 文件中的部分添加到 TableView
- android - 如何将我的本地图像更改为 React Native 中的文件类型?
- vega-lite - 是否可以对直方图使用构面和重复运算符?
- laravel - 如何修复“未检查的 runtime.lastError:消息端口在收到响应之前关闭”chrome 问题?