//
// finditem -- フォームから部品IDを受け取って該当するデータを返す
//
function finditem(form, xmldocument)
{
var fname = form.fname.value, // 元データを記録したXML文書名
output = form.output, // 結果表示用テキストボックス
itemId = form.itemId.value; // フォームに入力された部品ID
output.value = ""; // テキストを初期化
// XML文書を読み込む
var document = parse(fname, xmldocument),
topLevel = document.documentElement; // ルートノードを取得
searchItem(topLevel, output, itemId); // 検索処理
}
//
// データアイランドにXML文書のリストを読み込む
//
function parse(docname, xmldocument)
{
// 文書の読み込み
xmldocument.async = false;
xmldocument.load(docname);
if(xmldocument.parseError.errorCode != 0)
alert(xmldocument.parseError.reason);
return xmldocument;
}
//
// リストから品番がitemIdと一致するノードを探す
//
function searchItem(node, output, itemId)
{
var child, // 子ノードを保持するオブジェクト
i,
text = ""; // 検索結果(表示用)
// 子ノードの数だけ繰り返す
for(i = 0;i < node.childNodes.length;i++)
{
// ルートから1つ下のノードを処理対象に
child = node.childNodes(i); // 最初のレコードを処理
// 最初の要素(部品ID)を調べる
if(child.childNodes.item(0).text == itemId)
{
// 一致したら文字列を生成
text = makeList(child);
break;
}
}
if(text == "") // 該当レコードがなかったとき
text = "データが見つかりません。" +"\r";
output.value = text;
}
//
// 一致したノードの要素から文字列を作る
//
function makeList(node)
{
var textList = "";
// 3つの要素に対して、要素名と値とを連結
textList += "部品ID:" + node.childNodes.item(0).text + "\r";
textList += "部品名:" + node.childNodes.item(1).text + "\r";
textList += "単 価:" + node.childNodes.item(2).text + "円" + "\r";
return textList
}
|