情報システム設計論II ユーザインタフェース(1)

Similar documents
情報システム設計論II ユーザインタフェース(1)

情報システム設計論II ユーザインタフェース(1)

情報システム設計論II ユーザインタフェース(1)

情報システム設計論II ユーザインタフェース(1)

コンテンツメディアプログラミング実習2

Microsoft PowerPoint P演習 第10回 関数.ppt [互換モード]

情報システム設計論II ユーザインタフェース(1)

情報システム設計論II ユーザインタフェース(1)

スライド 1

設問 println はそこで指定されている内容を出力して改行するものである. 一方,print は内容を出力して改行しないものである. 下記のプログラムそれぞれについて出力結果がどうなるか回答せよ. 下記のプログラム - を実行すると, fms という文字列が 回表示される. プログラム - vo

情報システム設計論II ユーザインタフェース(1)

<4D F736F F F696E74202D208A778F708FEE95F197AC92CA82F08EC08CBB82B782E98B5A8F E97708B5A8F70816A5F94D196EC8D758E742E >

PowerPoint プレゼンテーション

デジタル表現論・第6回

pp2018-pp9base

デジタル表現論・第4回

pp2018-pp4base

C プログラミング演習 1( 再 ) 2 講義では C プログラミングの基本を学び 演習では やや実践的なプログラミングを通して学ぶ

Microsoft PowerPoint - prog03.ppt

大容量情報検索論

intra-mart Accel Platform — IM-Repository拡張プログラミングガイド   初版  

◎phpapi.indd

今回のプログラミングの課題 ( 前回の課題で取り上げた )data.txt の要素をソートして sorted.txt というファイルに書出す ソート (sort) とは : 数の場合 小さいものから大きなもの ( 昇順 ) もしくは 大きなものから小さなもの ( 降順 ) になるよう 並び替えること

第 7 回の内容 動的な Web サイト フォーム Web システムの構成

情報システム設計論II ユーザインタフェース(1)

Webデザイン論

オブジェクト指向プログラミング・同演習 5月21日演習課題

ohp.mgp

合宿事前講座 Web 開発の基本編その 2 情報研究会モブ 薗田海樹 The. H.30 情報研究会 1

Microsoft Word - no06.doc

Java Scriptプログラミング入門 3.6~ 茨城大学工学部情報工学科 08T4018Y 小幡智裕

メソッドのまとめ

Android Layout SDK プログラミング マニュアル

JavaプログラミングⅠ

GEC-Java

JavaScript 演習 2 1

ご利用のコンピュータを設定する方法 このラボの作業を行うには 事前設定された dcloud ラボを使用するか 自身のコンピュータをセットアップします 詳細については イベントの事前準備 [ 英語 ] とラボの設定 [ 英語 ] の両方のモジュールを参照してください Python を使用した Spar

Microsoft PowerPoint - 11.pptx

課題

情報システム設計論II ユーザインタフェース(1)

Web のしくみと応用 ('15) 回テーマ 1 身近なWeb 2 Webの基礎 3 ハイパーメディアとHTML 4 HTMLとCSS 5 HTTP (1) 6 HTTP (2) 7 動的なWebサイト 8 クライアントサイドの技術 回 テーマ 9 リレーショナルデータベース 10 SQL とデータ

intra-mart Accel Platform — IM-共通マスタ スマートフォン拡張プログラミングガイド   初版  

pp2019-pp10-base

プログラミング基礎I(再)

PowerPoint プレゼンテーション

画像ファイルを扱う これまでに学んだ条件分岐, 繰り返し, 配列, ファイル入出力を使って, 画像を扱うプログラムにチャレンジしてみよう

メソッドのまとめ

intra-mart Accel Platform

情報工学実験 C コンパイラ第 2 回説明資料 (2017 年度 ) 担当 : 笹倉 佐藤

PowerPoint プレゼンテーション

Webプログラミング演習

Microsoft PowerPoint kiso.ppt

PowerPoint プレゼンテーション

Java講座

JavaScript カスタマイズ入門 kintone university アプリデザイナープラス JavaScript カスタマイズ入門編演習問題回答 演習問題 第 2 章サンプルで試そう 1 cybozu.com developer network の サンプルで試そう ( 以下 サンプル と

Delphi/400を使用したWebサービスアプリケーション

ボタンイベントアプリイベント処理を含むアプリとして, ボタンをもち, ボタンを押すと文字列を表示するアプリを作る. このアプリは,HelloWorld アプリを改造して作成するため, アプリ作成の途中からの手順を示す. 1. ボタンの設置 (1) レイアウトにボタンを追加するパレットの フォーム ウ

Java 基礎問題ドリル ~ メソッドを理解する ~ 次のプログラムコードに 各設問の条件にあうメソッドを追加しなさい その後 そのメソッドが正しく動作することを検証するためのプログラムコードを main メソッドの中に追加しなさい public class Practice { // ここに各設問

前ページからの続き // テキストボックス02 id 属性で取得 // id 属性で取得する場合は一意に決まるので 何番目かの指定は不要 var textbox02elem = document.getelementbyid("text_box02_id"); if ("001" == statee

PowerPoint プレゼンテーション

Si 知識情報処理

Prog1_6th

スライド 1

<4D F736F F D B B83578B6594BB2D834A836F815B82D082C88C60202E646F63>

プログラミング入門1

<4D F736F F D20438CBE8CEA8D758DC F0939A82C282AB2E646F63>

Microsoft Word - no103.docx

PowerPoint Presentation

TestDesign for Web

PowerPoint Presentation

pp2018-pp10base

プログラミング実習I

数のディジタル化

基礎プログラミング2015

Microsoft PowerPoint - ●SWIM_ _INET掲載用.pptx

JavaScriptで プログラミング

Microsoft PowerPoint - handout07.ppt [互換モード]

Microsoft PowerPoint ppt

PowerPoint プレゼンテーション

Webデザイン論

PowerPoint Presentation

目次 新規ユーザー登録... 3 初期設定... 6 (1) 特定商取引法に基づくページのURLを設定する... 7 (2) コンバージョン測定タグを設定する... 7 サイトを作成してみよう

(1) プログラムの開始場所はいつでも main( ) メソッドから始まる 順番に実行され add( a,b) が実行される これは メソッドを呼び出す ともいう (2)add( ) メソッドに実行が移る この際 add( ) メソッド呼び出し時の a と b の値がそれぞれ add( ) メソッド

Microsoft PowerPoint Java基本技術PrintOut.ppt [互換モード]

eYACHO 管理者ガイド

PowerPoint プレゼンテーション

Microsoft Word - manual

書式に示すように表示したい文字列をダブルクォーテーション (") の間に書けば良い ダブルクォーテーションで囲まれた文字列は 文字列リテラル と呼ばれる プログラム中では以下のように用いる プログラム例 1 printf(" 情報処理基礎 "); printf("c 言語の練習 "); printf

GEC-Java

JAVA入門

Javaセキュアコーディングセミナー2013東京第1回 演習の解説

Microsoft Word - 3new.doc

Microsoft PowerPoint - prog08.ppt

Microsoft PowerPoint - prog04.ppt

PowerPoint プレゼンテーション

関数の呼び出し ( 選択ソート ) 選択ソートのプログラム (findminvalue, findandreplace ができているとする ) #include <stdiu.h> #define InFile "data.txt" #define OutFile "surted.txt" #def

Prog1_15th

Microsoft Word - no15.docx

コンピュータ中級B ~Javaプログラミング~ 第3回 コンピュータと情報をやりとりするには?

Microsoft PowerPoint - chap10_OOP.ppt

Transcription:

プログラミング演習 2 XML と Web API 中村, 小松, 小林, 鹿喰 1

XML を学ぼう! extensible Markup Language W3C(World Wide Web Consortium) で採択された Web 上でのデータのやりとりに注目した構造化文書記述のためのデータフォーマット XML の特徴 新しいタグを定義することが可能 構造は任意の形でネスト可能 ( 繰り返し ) XML はデータ記述言語であり, 表示能力は持っていない (HTML との違い. 表示には CSS などを使用 )

まずは見てみよう! 下記の XML を開いてみよう! http://nkmr.io/lecture/2014/fms.xml http://nkmr.io/lecture/2014/fms_syllabus.xml by Takuya Wada

XML のメリット データを機械可読な形に記述可能 HTML は機械での認識が難しい 関係データベースで表現できない半構造データを扱うことが可能 生物学のデータ Web 上の各種データ

HTML と XML の違い <h1> 日本代表 </h1> <h2> GK </h2> <ul> <li> 川島 </li> </ul> <h2> DF </h2> <ul> <li> 中澤 </li> <li> 田中 </li> <li> 長友 </li> <li> 駒野 </li> </ul> <h2> MF </h2> <ul> <li> 遠藤 </li> <li> 阿部 </li> <li> 長谷部 </li> <li> 大久保 </li> <li> 松井 </li> </ul> <h2> FW </h2> <ul> <li> 本田 </li> </ul> <h2> 監督 </h2> <ul> <li> 岡田 </li> </ul> <Team> <Name> 日本代表 </Name> <GK> <Player> 川島 </Player> </GK> <DF> <Player> 中澤 </Player> <Player> 田中 </Player> <Player> 長友 </Player> <Player> 駒野 </Player> : <Player> 大久保 </Player> <Player> 松井 </Player> </MF> <FW> <Player> 本田 </Player> </FW> <Director> 岡田 </Director> </Team>

XML の構成要素 要素 : XML の 1 単位 <team>... </team>, <player>... </player> 空要素にもなりうる : <director></director> タグ : team, GK, MF,..., player, director など 開始タグ : <team> 終了タグ : </team> 属性 : 要素の中で指定する属性 <player position="gk" number="1"...> 属性は開始タグの中で指定

様々な表現形式 <player position="gk" number="1" > 楢崎正剛 </player> <player> <name> 楢崎正剛 </name> <position>gk</position> <number>1</number> </player>

XML をどう読み込むか? 試しに下記のプログラムを書いてみよう! XML xml = loadxml( "http://nkmr.io/lecture/2014/fms.xml" ); XML [ ] children = xml.getchild("teachers").getchildren("teacher"); for( int i=0; i<children.length; i++ ){ println( children[i].getchild("name").getcontent() ); loadxml で XML を読み込んで,getChild で子どもを取得して,getChildren でその子どもたちを取得して,getContent で内容を表示!

XML の仕様 getparent() 親を取得 getname() 要素の名前を取得 haschidren( "name" ) nameの子達が居るかチェック getchildren( "name" ) nameの子達のリストを取得 getchild( "name" ) nameの子を取得 getstring( "atr" ) atr 属性を文字列として取得 getint( "atr" ) atr 属性を整数として取得 getfloat( "atr" ) atr 属性を実数として取得 getcontent() 要素の内容のテキスト情報を取得 getintcontent() 要素の内容の整数情報を取得 https://www.processing.org/reference/xml.html

fms.xml fms.xml について下記に挑戦してみよう 学科名を表示 教員リストを表示 講義名リストを表示 data name teachers teacher name link major

学科名を取得してみる data 学科名はオレンジ色のname name teachers data name teacher name 講義名は,dataの子 link major room lectures lecture lecture teacher XML xml = loadxml( name "http://nkmr.io/lecture/2014/fms.xml" ); println( xml.getchild( "name" ).getcontent() ); link

教員名を取得してみる data name teachers teacher teacher name link 教員名はオレンジ色の name data teachers teacher name 教員名は teachers の子である teacher の子の name に該当する XML xml = loadxml( major "http://nkmr.io/lecture/2014/fms.xml" ); XML teachers = xml.getchild("teachers"); XML [] teacher room = teachers.getchildlen("teacher"); println( teacher[0].getchild("name").getcontent() lectures ); println( teacher[1].getchild("name").getcontent() lecture ); : name link lecture teacher は同じものが複数存在するため子達 ( 配列 ) として取得する

教員名を取得してみる data name teacher major room name link 教員名はオレンジ色の name data teachers teacher name XML teachers xml = loadxml( "http://nkmr.io/lecture/2014/fms.xml" ); XML teachers = xml.getchild("teachers"); XML [] teacher teacher= teachers.getchildlen("teacher"); for( int i=0; i<teacher.length; name i++ ){ println( teacher[i].getchild("name").getcontent() ); link 教員名はteachersの子であるteacher の子のnameに該当する XML xml = loadxml( "http://nkmr.io/lecture/2014/fms.xml" ); XML [] teacher lectures = xml.getchild("teachers").getchildlen("teacher"); for( int i=0; i<teacher.length; lecture i++ ){ println( teacher[i].getchild("name").getcontent() ); lecture teacher は同じものが複数存在するため子達 ( 配列 ) として取得する

講義リストを取得してみる data name teachers teacher name link major 講義名はオレンジ色の lecture data teachers teacher lectures lecture teacher と lecture は同じものが複数存在するため子達 ( 配列 ) として取得 room lectures lecture lecture teacher name link

講義リストを取得してみる data XML xml = loadxml( "http://nkmr.io/lecture/2014/fms.xml" ); XML name teachers = xml.getchild("teachers"); XML teachers [] teacher = teachers.getchildlen("teacher"); XML lectures = teacher[0].getchild( "lectures" ); XML [] lecture teacher= lectures.getchildren( "lecture" ); println( lecture[0].getcontent() name ); println( lecture[1].getcontent() ); link : major room XML xml = loadxml( "http://nkmr.io/lecture/2014/fms.xml" ); XML [] teacher lectures = xml.getchild("teachers").getchildren("teacher"); 講義名はオレンジ色のlecture for( int i=0; i<teacher.length; lecture data i++ ){ teachers teacher XML [] lecture = teacher[i].getchild("lectures").getchildren("lecture"); lecture for( int j=0; j<lecture.length; lectures j++ ){ lecture println( teacher lecture[j].getcontent() ); name link teacher と lecture は同じものが複数存在するため子達 ( 配列 ) として取得

演習 fms_syllabus.xml について下記に挑戦してみよう 講義名リスト 教員リスト 講義名と教員のリスト subjects subject subject name teachers teacher teacher

講義名を取得してみる subjects subject name teachers teacher teacher subject name 講義名はオレンジ色の name subjects subject name 講義名は,subjects の子である subject の子に該当する subject は同じものが複数存在するため子達 ( 配列 ) として取得する teachers XML xml = loadxml( teacher "http://nkmr.io/lecture/2014/fms_syllabus.xml" ); XML [] subject = xml.getchildren("subject"); println( subject[0].getchild("name").getcontent() ); println( subject subject[1].getchild("name").getcontent() ); :

教員名を取得してみる subjects subject name teachers 教員名はオレンジ色の teacher subjects subject teachers teacher teacher teacher subject name teachers XML xml = loadxml( "http://nkmr.io/lecture/2014/fms_syllabus.xml" ); XML [] subject teacher = xml.getchildren("subject"); XML teachers = subject[0].getchild( "teachers" ); XML [] teacher = taechers.getchildren( "teacher" ); println( subject teacher[0].getcontent() ); println( teacher[1].getcontent() );

注意 loadxml を draw() 内部に書くのはやめましょう! loadxml でファイルをダウンロードして利用するものを利用している時,draw() の度にこの処理を行ってしまうと,XML 提供者に迷惑をかけてしまう loadxml を行うのは, 初期設定 setup() か, 何らかの処理 (mousepressed() など ) のときだけにしましょう

天気の情報を取得しよう Weather Hack http://weather.livedoor.com/weather_hacks/ 家の近辺の天気予報を表示してみよう! RSS は基本的に XML と同じと解釈しておいて OK

天気の情報を取得しよう

天気の情報を取得しよう 東京の天気予報データを取得してみよう http://weather.livedoor.com/forecast/rss/area/130010.xml String url = "http://weather.livedoor.com/forecast/rss/area/130010.xml"; XML xml = loadxml( url ); XML [] item = xml.getchild("channel").getchildren("item"); for( int i=1; i<item.length; i++ ){ println( item[i].getchild("title").getcontent() ); [ 演習 ] 東京以外のどこかの天気予報データを取得しよう

明治大学総合数理学部先端メディアサイエンス学科文字列処理と組み合わせる中村研究室 最高気温と最低気温をどう取得する? 30 日 ( 日 ) の天気は晴のち曇 最高気温は 17 最低気温は 12 でしょう indexof で場所を指定して,substring で出力 String url = "http://weather.livedoor.com/forecast/rss/area/130010.xml"; XML xml = loadxml( url ); XML [] item = xml.getchild("channel").getchildren("item"); for( int i=1; i<item.length; i++ ){ println( item[i].getchild("description").getcontent() ); String str = item[i].getchild("description").getcontent(); println( str.substring( str.indexof(" 最高気温 ")+5, str.indexof(" ") ) ); println( str.substring( str.indexof(" 最低気温 ")+5, str.indexof(" ", str.indexof(" 最低気温 ")) ) );

[ 演習 ] 動画のランキング作成 デイリーランキングの結果を表示してみよう! ニコニコ動画のXML デイリーランキング http://www.nicovideo.jp/ranking/fav/daily/all ニコニコ動画 API http://dic.nicovideo.jp/a/ ニコニコ動画 api ニコニコ動画の RSS 一覧 http://www.nicovideo.jp/rss/

ニコニコ動画 API いくつか getthumbinfo http://ext.nicovideo.jp/api/getthumbinfo/sm* 動画の情報を得ることができる http://ext.nicovideo.jp/api/getthumbinfo/sm1097445 getflv( 要ログイン ) http://flapi.nicovideo.jp/api/getflv/sm* 指定された動画の FLV 保管 URL を取得できる thread の情報を取得するのにも利用する http://flapi.nicovideo.jp/api/getflv/sm1097445

JSON JavaScript Object Notation JavaScript 用のデータ交換フォーマット 少し特殊なフォーマットを持つ 詳細は CMP2 で紹介しますが,XML と同じように loadjsonobject(), getstring(), getint(), getfloat(), getjsonarray(), getjsonobject() などがあり, データを取得することが可能 JSON は { 要素名 : 要素の値 という形で定義 ( 要素の中に要素を入れることが可能 ) [ 要素 1, 要素 2 ] という形で配列を定義 https://www.processing.org/reference/jsonobject.html

[ 演習 ] http://nkmr.io/lecture/2014/fms_syllabus.json を読み込んでみよう 読み込むのは loadjsonobject( "..." ); String url = "http://nkmr.io/lecture/2014/fms_syllabus.json"; JSONObject json = loadjsonobject( url ); println( json ); 講義名リストを作成してみよう 講義名 + 教員名リストを作成してみよう

String url = "http://nkmr.io/lecture/2014/fms_syllabus.json"; JSONObject json = loadjsonobject( url ); println( json ); JSONArray subjects = json.getjsonarray( "subject" ); for( int i=0; i<subjects.size(); i++ ){ JSONObject subject = subjects.getjsonobject(i); println( subject.getstring("name") ); String url = "http://nkmr.io/lecture/2014/fms_syllabus.json"; JSONObject json = loadjsonobject( url ); println( json ); JSONArray arraysubject = json.getjsonarray( "subject" ); for( int i=0; i<arraysubject.size(); i++ ){ JSONObject subject = arraysubject.getjsonobject(i); println( subject.getstring("name") ); JSONObject jsonteachers = subject.getjsonobject("teachers"); JSONArray arrayteacher = jsonteachers.getjsonarray("teacher"); for( int j=0; j<arrayteacher.size(); j++ ){ println( " - " + arrayteacher.getstring( j) );

Web API 例えばこんな感じ http://ma9.mashupaward.jp/apis http://www.find-job.net/startup/api-2013

URI http://snakamura.org/software/index.html プロトコルサーバの場所サーバ内での場所 使える文字は英数字と一部の記号 -.~:@!$&'() 日本語を入力する場合は % エンコーディング URI は URL と URN を総称したもの URL は Uniform Resource Locator URN は Uniform Resource Name

リクエスト URL http://example.jp/search?query=test&area=10&... ベース URL query=test area=10 http://example.jp/search query=test area=10 query=test area=10 ベース URL ベースの URL のあと? が入り以降はオプション複数のオプションは & でつなぐオプションは = で繋ぎ変数名と変数の値を指定

返り値は XML や JSON 返り値はあるデータフォーマット JSON や XML などの形式 <staffs> XML <staff> <name> 宮下芳明 </name> <position> 教授 </position> <room>1018</room> </staff> <staff> <name> 中村聡史 </name> <position> 准教授 </position> <room>1007</room> </staff> </staffs> { "staffs": { "staff": [ { "name": " 宮下芳明 ", "position": " 教授 ", "room": "1018", { "name": " 中村聡史 ", "position": " 准教授 ", "room": "1007" ] JSON

何ができるか? 一般的な API はメソッドとして用意されており, そこに引数を渡すことで何かの動作を実現する ellipse( 200, 200, 50, 50 ); dist( mousex, mousey, 200, 200 ); Web API は GET リクエストである URL に必要な情報を渡すことで何らかの結果を得る http://nkmr.io/api.php?person=homei http://nkmr.io/api.php?x=50&y=30

Web API の内部処理 複数の引数を受け取ることが可能 $x 5 $y 3 x y x, y を利用して処理する なんか 処理機 XML/JSON 形式で結果が取得できる http://example.jp/api?x=$x&y=$y http://example.jp/api?x=5&y=$y XML/JSON

[ 演習 ] フォト蔵 API を使う フォト蔵とは, インターネット上の画像を集め, 検索可能とするサービス https://api.photozou.jp/rest/search_public.xml?key word=cat

[ 演習 ] フォト蔵 API を使う https://api.photozou.jp/rest/search_public.xml? 問い合わせの基本的な URL keyword=ramen オプション ( この場合はキーワードに ramen を指定している )

結果を表示して遊ぼう! 検索結果の画像を表示してみよう!(10 枚 ) PImage [] img; void setup() { size( 1200, 800 ); String url = "https://api.photozou.jp/rest/search_public.xml?keyword=ramen"; XML xml = loadxml( url ); XML [] photo = xml.getchild("info").getchildren("photo"); img = new PImage [photo.length]; for ( int i=0; i<10; i++ ) { println( photo[i].getchild("image_url").getcontent() ); img[i] = loadimage(photo[i].getchild("image_url").getcontent() ); background( 0 ); for( int i=0; i<10; i++ ){ image( img[i], random(width-300),random(height-300) ); void draw(){

日本語で検索するには... 右記のプログラムを別タブで作成 url のところを変更 +URLEncode(" 猫 "); import java.io.unsupportedencodingexception; String URLEncode(String string) { String output = new String(); try { byte[] input = string.getbytes("utf-8"); for (int i=0; i<input.length; i++) { if (input[i]<0){ output += '%' + hex(input[i]); else if (input[i]==32){ output += '+'; else { output += char(input[i]); catch(unsupportedencodingexception e) { e.printstacktrace(); return output; https://processing.org/discourse/beta/num_1159828167.html

結果を表示して遊ぼう! 猫というキーワードで検索 // ここに前のページの定義を追加 ~ PImage [] img; void setup() { size( 1200, 800 ); String url = "https://api.photozou.jp/rest/search_public.xml?keyword="+urlencode(" 猫 "); XML xml = loadxml( url ); XML [] photo = xml.getchild("info").getchildren("photo"); img = new PImage [photo.length]; for ( int i=0; i<10; i++ ) { println( photo[i].getchild("image_url").getcontent() ); img[i] = loadimage(photo[i].getchild("image_url").getcontent() ); background( 0 ); for( int i=0; i<10; i++ ){ image( img[i], random(width-300),random(height-300) ); void draw(){ 日本語はそのまま処理できないので %XX の形に要変換

宿題 適当な Web API または RSS などを探し, そこから情報を取得して, 情報提示するようなシステムを作ってみよう! ( 例 ) 1 週間の最高気温, 最低気温をグラフで表示 現在のニコニコ動画のランキングをサムネイル画像とセットで表示 Yahoo! オークションの商品をランダムに表示

Yahoo! API を使ってみよう http://developer.yahoo.co.jp/

Yahoo! Japan ID でログイン 必要に応じてアカウントを取得しよう!

新しいアプリケーションを開発

必要な情報を入力! クライアントサイドを選択 アプリケーション名はお好きにどうぞ サイト URL はそのままで OK

アプリケーション ID を取得 このアプリケーション ID をコピペして利用!

地図を表示するには?

Yahoo! API で遊ぶ API キーは自分のを利用しましょう! PImage mapimage; void setup() { size( 600, 400 ); String baseurl = "http://map.olp.yahooapis.jp/openlocalplatform/v1/static?"; String option = "appid=dj0zaizppwljvlfvrw85twlnsyzzpwnvbnn1bwvyc2vjcmv0jng9njg-"; option += "&lat=35.706962&lon=139.659547&z=16&width=600&height=400&pointer=on"; mapimage = loadimage( baseurl + option, "png" ); void draw() { image( mapimage, 0, 0 );

import java.io.unsupportedencodingexception; String URLEncode(String string) { String output = new String(); try { byte[] input = string.getbytes("utf-8"); for (int i=0; i<input.length; i++) { if (input[i]<0){ output += '%' + hex(input[i]); else if (input[i]==32){ output += '+'; else { output += char(input[i]); catch(unsupportedencodingexception e) { e.printstacktrace(); return output; void setup() { String baseurl = "http://jlp.yahooapis.jp/maservice/v1/parse?"; String option = "appid=dj0zaizppwljvlfvrw85twlnsyzzpwnvbnn1bwvyc2vjcmv0jng9njg-"; option += "&sentence=" + URLEncode( " 庭には二羽鶏がいる " ); XML xml = loadxml( baseurl + option ); println( xml ); XML [] word = xml.getchild("ma_result").getchild("word_list").getchildren("word"); for( int i=0; i<word.length; i++ ){ println( word[i].getchild("surface").getcontent(), word[i].getchild("pos").getcontent() );