×
Namespaces

Variants
Actions

Country-Info WRT Widgetを作成する方法

From Nokia Developer Wiki
Jump to: navigation, search
Article Metadata
Code ExampleCompatibility
Platform(s):
Symbian
Article
Translated:
By fnjwikimng
Last edited: hamishwillee (08 May 2013)


Contents

はじめに

本Widgetでは、世界のあらゆる国における、国独自の情報(Country Specific Information) を取得することができます。それは、国コード、通貨名称、通貨コードなどを含みます。本情報は、いつでも手軽に取り出せ、ユーザーが入力する必要があるのは国名だけです。処理一覧を下記に示します。

        Diagram.jpg

HTML/フォーム 要素を作成する

<body bgcolor="#ffffff">
<form name="htmlForm" method="POST" action="javascript:formSend();">
Country Name: <input type="text" name="countryNameFld" value="" /><br />
<input type="submit" value="Inquire" /><br /> <br />
<p>Country Name : <b> <span id="countryName"></span></b><br />
Country Code : <b> <span id="countrycode"></span></b><br />
Currency  : <b> <span id="currency"></span></b><br />
Currency Code: <b> <span id="currencyCode"></span></b><br />
</body>

CSS - スタイルシート

body {  
}
#countryName {
font-size: 1.1em;
color: Blue;
}
#countrycode {
font-size: 1.1em;
color: Blue;
}
#currency {
font-size: 1.1em;
color: Blue;
}
#currencyCode {
font-size: 1.1em;
color: Blue;
}

JavaScript

var xmlhttp;
function formSend() {
xmlhttp=null;
if (window.XMLHttpRequest)
{// code for IE7, Firefox, Mozilla, etc.
xmlhttp=new XMLHttpRequest();
}
else if (window.ActiveXObject)
{// code for IE5, IE6
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
if (xmlhttp!=null)
{
var httpReq = null;
httpReq = new XMLHttpRequest();
httpReq.open("GET", "http://www.webservicex.net/country.asmx/GetCurrencyByCountry?CountryName="+document.htmlForm.countryNameFld.value, true);
httpReq.send(null);
 
httpReq.onreadystatechange = function()
{//Call a function when the state changes.
if(httpReq.readyState == 4)
{
if(httpReq.status==200)
{
var response = httpReq.responseText; //store XML as String
var temp = response.indexOf("Name&gt;"); // Name> Tag '8 Char String'
var temp2 = response.indexOf("&lt;/Name"); // /Name>
 
var str = response.substr(temp+8,temp2-temp-8);
document.getElementById('countryName').innerHTML = str;
 
temp = response.indexOf("CountryCode&gt;"); // CountryCode> '15 Char String'
temp2 =response.indexOf("&lt;/CountryCode");
str = response.substr(temp+15,temp2-temp-15);
document.getElementById('countrycode').innerHTML = str;
 
temp = response.indexOf("Currency&gt;");
temp2 =response.indexOf("&lt;/Currency");
str = response.substr(temp+12,temp2-temp-12);
document.getElementById('currency').innerHTML = str;
 
temp = response.indexOf("CurrencyCode&gt;");
temp2 =response.indexOf("&lt;/CurrencyCode");
str = response.substr(temp+16,temp2-temp-16);
document.getElementById('currencyCode').innerHTML = str;
 
 
}
else
{
alert("Error - Server May be Down" );
}
}
}
}
else
{
alert("Your browser does not support XMLHTTP.");
}
}

文字列操作の部分は、最初はトリッキーに見えるかもしれません。しかし、それら全てにおけるポイントは、2つの連続したXMLタグ間に包含された文字列を取得することです。最初に、各XMLタグの '初め' と '終わり' のインデックスに位置付けます。indexOf()関数は、ターゲットとなる文字列中の最初の文字のインデックスを取得します。そしてそれが、substr()関数で使われます。さらに、substr()関数は2つの引数(開始位置、文字列の長さ)を使用します。

最終的な出力結果

Output.jpg

ソースコードのダウンロード

ソースコードファイルは、次のサイトからダウンロードできます: Media:CurrencyWidget.zip

リンク集

Webサービスを使用した株情報Widgetを作成する方法

This page was last modified on 8 May 2013, at 02:56.
65 page views in the last 30 days.

Was this page helpful?

Your feedback about this content is important. Let us know what you think.

 

Thank you!

We appreciate your feedback.

×