有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java WMI XMLResult解析

我有一个来自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"

实例标记会重复几次。 现在我有了一处房产。数组标签,我想读出来

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);”处得到一个空值

我的错误在哪里?有什么想法吗?有人吗


共 (0) 个答案