java - WMI XML-结果解析
问题描述
我有一个来自 wmi 输出的 xml 结果。
<RESULTS NODE="192.168.a.s.o">
<CIM>
<INSTANCE CLASSNAME="Win32_NetworkAdapterConfiguration">
<PROPERTY NAME="ArpAlwaysSourceRoute" CLASSORIGIN="Win32_NetworkAdapterConfiguration"
PROPAGATED="true" TYPE="boolean"></PROPERTY>
<PROPERTY NAME="ArpUseEtherSNAP" CLASSORIGIN="Win32_NetworkAdapterConfiguration"
PROPAGATED="true" TYPE="boolean"></PROPERTY>
<PROPERTY NAME="Caption" CLASSORIGIN="CIM_Setting" TYPE="string">
<VALUE>[00000000] WAN Miniport (SSTP)</VALUE>
</PROPERTY>
<PROPERTY NAME="DatabasePath" CLASSORIGIN="Win32_NetworkAdapterConfiguration"
PROPAGATED="true" TYPE="string"></PROPERTY>
<PROPERTY NAME="DeadGWDetectEnabled" CLASSORIGIN="Win32_NetworkAdapterConfiguration"
PROPAGATED="true" TYPE="boolean"></PROPERTY>
<PROPERTY.ARRAY NAME="DefaultIPGateway"
CLASSORIGIN="Win32_NetworkAdapterConfiguration" PROPAGATED="true"
TYPE="string"></PROPERTY.ARRAY>
<PROPERTY NAME="DefaultTOS" CLASSORIGIN="Win32_NetworkAdapterConfiguration"
INSTANCE 标签会重复几次。现在我有一个 PROPERTY.ARRAY-Tag,我想读出它。
java代码是这样的:
NodeList instances = dom.getDocumentElement().getElementsByTagName("INSTANCE"); // get
// a
// nodelist
// of
// <INSTANCE>
// elements
if (instances != null && instances.getLength() > 0) {
for (int i = 0; i < instances.getLength(); i++) {
Element el = (Element) instances.item(i);
NodeList properties = el.getElementsByTagName("PROPERTY.ARRAY");
if (properties != null && properties.getLength() > 0) {
for (int j = 0; j < properties.getLength(); j++) {
Element propEl = (Element) properties.item(j);
if (propEl.getAttribute("NAME").equalsIgnoreCase(propertyName)) {
Node node = propEl.getFirstChild();
if (node != null)
value = node.getTextContent();
}
}// end for property
}
}// end for instance
}// end if
问题是,我总是在“(Element) properties.item(j);”处得到一个空值。
我的错误在哪里 - 任何想法?有人?
解决方案
推荐阅读
- php - 在 php 中构造之前会运行什么代码?
- c# - 如何用存储过程的结果填充数据表?通过从列表框中获取数据
- javascript - ngrx + 量角器 - 竞争条件
- javascript - 即使刷新后如何使按钮禁用10分钟?
- angularjs - “$onInit”是否比“激活”更有效地激活 angularJS 中的“控制器”?
- git - 在 Jenkins 中连接到 Git 存储库
- node.js - 如何等待第一个查询结果,然后在 node.js 中执行另一个查询
- javascript - 学校计算机禁用 chrome://dino。您可以使用检查元素重新启用它吗?
- oracle - 获取“后语句”触发器中修改的行数
- java - 在 Selenium TestNG XML 中运行多个测试用例