1

Javaアプリでxml属性を出力するチュートリアルから次のコードを取得しました。最終的には、それらを文字列として変数に割り当てます。

        doc.getDocumentElement().normalize();
        System.out.println("Root element :" + doc.getDocumentElement().getNodeName());
        NodeList nList = doc.getElementsByTagName("xyz:xyzcontent");
        System.out.println("----------------------------");

        for (int temp = 0; temp < nList.getLength(); temp++) {

            Node nNode = nList.item(temp);

            System.out.println("\nCurrent Element is " + nNode.getNodeName());

            if (nNode.getNodeType() == Node.ELEMENT_NODE) {

                Element eElement = (Element) nNode;

                eElement.getAttribute("id");
                System.out.println("Link : " + eElement.getElementsByTagName("link").item(0).getTextContent());

            }
        }

これは正常に機能していますが、特定の にアクセスする必要があります<date>。複数の<date>属性があります。例えば:

<releasedate>
   <date>1300981500000</date>
</releasedate>
<createddate>
   <date>1300981385795</date>
</createddate>

<createddated><date>値の代わりに値を取得するにはどうすればよい<releasedate><date>ですか? 最初に見つけたものを選択するだけのようです。ありがとう。

4

2 に答える 2

0
public static void main(String[] args) throws Throwable, SAXException, IOException {

    DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
    DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
    Document doc = dBuilder.parse(your stream);
    NodeList n = doc.getElementsByTagName("root").item(0).getChildNodes();
    for(int i=0; i<n.getLength(); i++) {
        Node item = n.item(i);
        if(item instanceof Element) {
            String e = ((Element)item).getElementsByTagName("date").item(0).getTextContent();
            System.out.println();
            System.out.println(((Element) item).getTagName());
            System.out.println(e);
            //if you need to convert to date:
            System.out.println(new Date(Long.parseLong(e)));
        }
    }
}

要素を取得するには、for を使用する必要があります。ライブラリなしで「root\releasedate\date」のように特定のノードを取得することはできません。私の出力:

releasedate
1300981500000
Thu Mar 24 16:45:00 CET 2011

createddate
1300981385795
Thu Mar 24 16:43:05 CET 2011
于 2013-10-15T14:37:42.390 に答える