2

次のようなXMLファイルがあります。

<exist:result xmlns:exist="http://exist.sourceforge.net/NS/exist">
<exist:collection name="/db/RCM" created="2013-03-24T09:37:34.957+05:30" owner="admin" group="dba" permissions="rwxrwxrwx">
<exist:resource name="demo2.xml" created="2013-03-24T09:44:13.696+05:30" last-modified="2013-03-24T09:44:13.696+05:30" owner="guest" group="guest" permissions="rw-r--r--"/>
<exist:resource name="demo3.xml" created="2013-03-24T09:45:47.592+05:30" last-modified="2013-03-24T09:45:47.592+05:30" owner="guest" group="guest" permissions="rw-r--r--"/>
<exist:resource name="rcmdemo.xml" created="2013-03-25T11:36:45.659+05:30" last-modified="2013-03-25T11:36:45.659+05:30" owner="guest" group="guest" permissions="rw-r--r--"/>
<exist:resource name="rcmdemo2.xml" created="2013-03-25T11:47:03.564+05:30" last-modified="2013-03-25T11:47:03.564+05:30" owner="guest" group="guest" permissions="rw-r--r--"/>
</exist:collection>
</exist:result>

XMLファイルの名前を取得したいので、出力は次のようになります。

demo2.xml
demo3.xml
rcmdemo.xml
rcmdemo2.xml

私は次のコードを書きました:

NodeList nodeList = doc.getElementsByTagName("exist:resource");
for (int i = 0; i < nodeList.getLength(); i++) {
    Node n = nodeList.item(i);
    Node actualNode = n.getFirstChild();
    if (actualNode != null) {
        System.out.println(actualNode.getNodeValue());
    }
}

しかし、それは私が望む出力を返しません、私はどこで間違っていますか?

4

2 に答える 2

2

この例では、nameはノードの名前ではなく、ノードの属性です。ノードの属性に関する情報については、次の質問を参照してください。特に2番目の答えは、あなたが探しているものだと思います。

Javaを使用してXMLファイルから属性を取得します

于 2013-03-26T04:49:19.417 に答える
1

はの属性であるため、指定されたノードから属性を取得する必要がnameありますexist:resource

NodeList nodeList = doc.getElementsByTagName("exist:resource");
        for (int i = 0; i < nodeList.getLength(); i++) {
            Node n = nodeList.item(i);
            Node actualNode = n.getFirstChild();
            if (actualNode != null) {
                // Will return node value
                System.out.println(actualNode.getNodeValue());
                // Will return the attribute value
                System.out.println(current.getAttributeValue("name")); 
            }
        }
于 2013-03-26T04:58:17.707 に答える