ブログ

AndroidアプリでXMLファイルを作成する

サーバにDBサーバ(MySQL)を構築して、スマートフォンアプリからデータを入力。
入力したデータをDBに保存。
そんなアプリを作る時、なんとなく端末から直接DBにアクセス出来そうな気もしますが。やっぱりできないんですね。

で、方法としては、スマホ端末側でXMLファイルを作成。
それをサーバ側に保存。
サーバ側でファイルを読み込んで、DBに書き込み。

ちなみにAndroidだとXMLファイルの作成はこんな感じ。

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);


		final int iUserId = 3;

		// Create XMLボタン
		Button btnInput = (Button) findViewById(R.id.btnInput);
		btnInput.setOnClickListener(new View.OnClickListener() {
			@Override
			public void onClick(View v) {

				DocumentBuilderFactory dbfactory = DocumentBuilderFactory
						.newInstance();
				try {
					DocumentBuilder dbuilder = dbfactory.newDocumentBuilder();
					// Documentノードの生成
					Document document = dbuilder.newDocument();
					// root要素の生成
					Element root = document.createElement("catch");

					// 要素を作成
					Element user_id = document.createElement("user_id");
					Text text = document.createTextNode(String.format("%1$011d",iUserId));
					user_id.appendChild(text);

					Element title_id = document.createElement("title_id");
					text = document.createTextNode("1");
					title_id.appendChild(text);

					Element item_id = document.createElement("item_id");
					text = document.createTextNode("9");
					item_id.appendChild(text);

					Element item_value = document.createElement("item_value");
					text = document.createTextNode("43");
					item_value.appendChild(text);

					Element location = document.createElement("location");
					text = document.createTextNode("霞ヶ浦");
					location.appendChild(text);

					Element comment = document.createElement("comment");
					text = document.createTextNode("今日は寒かったですが、なんとかトップで釣りました!");
					comment.appendChild(text);

					// 各要素を親ノードへ追加
					root.appendChild(user_id);
					root.appendChild(title_id);
					root.appendChild(item_id);
					root.appendChild(item_value);
					root.appendChild(location);
					root.appendChild(comment);

					// root要素をDocumentノードへ追加
					document.appendChild(root);


					//現在日時を取得する
					final Calendar calendar = Calendar.getInstance();

			        //フォーマットパターンを指定して表示する
			        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddhhmmss");
			        String sDateTime = sdf.format(calendar.getTime());

					TransformerFactory tffactory = TransformerFactory.newInstance();
					Transformer transformer = tffactory.newTransformer();
					// XML保存先ディレクトリ
					String path = Environment.getExternalStorageDirectory().toString() + "/xml/";
					File dir = new File(path);
					if (!dir.exists()) {
						dir.mkdir();
					}
					// ファイル名指定
					File file = new File(path + sDateTime + "_" + String.format("%1$011d",iUserId) + ".xml");
					if (!file.exists()) {
						file.createNewFile();
					}
					transformer.transform(new DOMSource(document), new StreamResult(file));

					Toast.makeText(MainActivity.this, "Saved", Toast.LENGTH_LONG).show();


				} catch (ParserConfigurationException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				} catch (TransformerConfigurationException e) {
					// TODO 自動生成された catch ブロック
					e.printStackTrace();
				} catch (TransformerException e) {
					// TODO 自動生成された catch ブロック
					e.printStackTrace();
				} catch (IOException e) {
					// TODO 自動生成された catch ブロック
					e.printStackTrace();
				}

			}
		});

	}

なんとなく、もう少しスマートに出来ないのかな、と思うんだけど。
現状では、やっぱりこれなのかな。

スポンサードリンク

  • このエントリーをはてなブックマークに追加

関連記事

スポンサードリンク

 

30代半ばのオッサンが起業した話

プロフィール

kobayashi-profile
代表取締役CEO 小林 高志
1999年からシステムエンジニアとして、クライアントサーバのシステム構築、WEBシステムの開発、Androidアプリの企画・開発、iPhoneアプリの企画・マーケティング等に携わる。
2012年からカメラマンとして都内のスタジオに従事。
2012年、株式会社woodsmall創業。
2013年5月に代表取締役に就任。
自身の半生を綴った書籍を出版するのが、個人的な目標。
趣味は、カメラ・車・バイク・料理。

代表取締役の略歴はこちら

社長のブログについて

検索してもヒットしなかったアプリ開発に関する技術的な記事から、その時に思ったことなどを素直に書き綴っています。

スポンサードリンク

Facebook

twitter

対応エリア

株式会社woodsmallは、千葉県をはじめ関東エリア、関西エリアでのホームページ制作、アプリ開発(Android、iPhone)、システム開発、チラシ制作を承ります。

【千葉県エリア】
船橋市、市川市、習志野市、浦安市、鎌ヶ谷市、松戸市、柏市、成田市、佐倉市、千葉市中央区、千葉市花見川区、千葉市稲毛区、千葉市美浜区、千葉市若葉区、千葉市緑区、白石市などの千葉県エリア

【東京都エリア】
足立区、荒川区、板橋区、江戸川区、大田区、葛飾区、北区、江東区、品川区、渋谷区、新宿区、杉並区、墨田区、世田谷区、台東区、中央区、千代田区、豊島区、中野区、練馬区、文京区、港区、目黒区などの東京都エリア

【神奈川県エリア】
横浜市、川崎市、藤沢市、茅ヶ崎市、大和市、海老名市、座間市、綾瀬市、平塚市、寒川町、大磯町、二宮町などの神奈川県エリア

【埼玉県エリア】
さいたま市、川口市、蕨市、戸田市などの埼玉県エリア

【関東・関西エリア】
その他、茨城県、栃木県、群馬県の関東エリア、長野県、新潟県の甲信越エリア、大阪府の関西エリア、全国からのご依頼に対応させて頂きます。
(遠方の場合は電話やメール、LINE、Skypeでの打合せとなります。)

ページ上部へ戻る