2

getNodeName を使用すると、「#text」を接頭辞として使用して実際の値が返されます。その接頭辞は必要ありません。スペースと改行を削除すると、getNodeName は正常に動作します。解析xmlにDocumentBuilderFactory、DocumentBuilder、およびDocumentを使用しています。

私のXMLファイル

<test>
    <a>
        file1
    </a>
    <b>
        file2
    </b>
    <c>
        <files>
            <file>
                myfile1
            </file>
        </files>
    </c>
</test>

私のJavaメソッド

NodeList childNodes = null;
NodeList parentNodes = xml.getNodeList("test");
int node_len = parentNodes.getLength();
for (int i = 0; i < node_len; i++)
{
    childNodes = parentNodes.item(i).getChildNodes();
    int child_len = childNodes.getLength();
    for (int j = 0; j < child_len; j++)
    {
        Node dataNode = childNodes.item(j);
        System.out.println(dataNode.getNodeName());
    }
}

この問題を解決するのを手伝ってください。よろしくお願いします。

4

4 に答える 4

0
            for (int j = 0; j < child_len; j++)
            {
                Node dataNode = childNodes.item(j);

                    if(dataNode.getAttributes() != null)
                        System.out.println(dataNode.getNodeName());

                   /*or
                   if (dataNode.getNodeType() == Node.ELEMENT_NODE) 
                   {
                       System.out.println(dataNode.getNodeName());
                   }
                   */
            }
        }
于 2013-05-14T12:37:28.223 に答える