目次へ

解答例 - 実習課題1 - 3.XML文書を読む2

(実習課題1)

以下のプログラムを作成しなさい。

  • employees2.xmlファイルより、従業員の名前を取得し、表示する
  • 引数で指定した従業員番号の従業員の名前を表示する
  • 従業員番号はemployee要素のno属性の値
  • 従業員の名前は、name要素の内容

解答例

/**
 * GetEmployee.java
 * 
 * TECHSCORE Java XML DOM XSLT 3章 実習課題1
 * 
 * Copyright (c) 2004 Four-Dimensional Data, Inc.
 */
package com.techscore.dom.chapter3.exercise1;

import javax.xml.parsers.DocumentBuilderFactory;

import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;

public class GetEmployee {

    public static void main(String[] args) throws Exception {
        if (args.length != 1) {
            System.err.println("引数に従業員番号を指定してください。");
            return;
        }
        String id = args[0];

        Document document = DocumentBuilderFactory.newInstance()
                .newDocumentBuilder()
                .parse("employees2.xml");

        Element rootElement = document.getDocumentElement();
        NodeList employeeNodes = rootElement.getElementsByTagName("employee");
        for (int i = 0; i < employeeNodes.getLength(); i++) {
            Element employee = (Element) employeeNodes.item(i);
            if (!employee.getAttribute("no").equals(id)) {
                continue;
            }
            NodeList nameElements = employee.getElementsByTagName("name");
            if (nameElements.getLength() > 0) {
                System.out.println("従業員番号 " + id + " : "
                        + nameElements.item(0).getFirstChild().getNodeValue());
            } else {
                System.err.println("従業員番号 " + id + " の従業員の名前は見つかりませんでした。");
            }
            System.exit(0);
        }
        System.err.println("従業員番号 " + id + " の従業員は見つかりませんでした。");
    }
    
}

↑このページの先頭へ

こちらもチェック!

PR
  • XMLDB.jp