WMI XML-результат анализа - PullRequest
0 голосов
/ 07 мая 2018

У меня xml-результат из wmi-output.

<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, который я хочу прочитать.

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

Проблема в том, что я всегда получаю нулевое значение в "(Элемент) properties.item (j);"

Где моя ошибка - какие-то идеары? кто-нибудь?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...