×
Namespaces

Variants
Actions
Revision as of 05:38, 9 December 2011 by hamishwillee (Talk | contribs)

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 (09 Dec 2011)


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を作成する方法

68 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.

×