プロが教えるわが家の防犯対策術!

現在Webアプリケーションの簡単なものを作成しています。
データベースはXMLで出来上がっているのでそれを使いたいのですが、入力フォームに入れてもらったデータをXMLに変換してXMLデータベースに追加、保存しようと思います。
一応フォームに入力したものをXMLデータとして出力までは考えられたのですが、既存のXMLを読み出す方法と追加する方法、保存する方法がよくわかりません。

よろしくお願いいたします。

<html>
<head>
<title>入力フォーム</title>
<script type="text/vbscript">
<!--
Option Explicit
dim xmldoc
Sub window_onload()
set xmldoc=createObject("MSXML2.DOMDocument")
xmldoc.async=False
xmldoc.loadXML("<?xml version='1.0'?><全体/>")
End Sub

Sub makeXml()
dim myInfoElement,myDataElement,myDataText
dim ret1,ret2,ret3,ret4

set ret1=xmldoc.createTextNode(vbCRLf)
xmldoc.documentElement.appendChild(ret1)

set myInfoElement=xmldoc.createElement("名簿")

set ret2=xmldoc.createTextNode(vbCRLf)
myInfoElement.appendChild(ret2)

set myDataElement=xmldoc.createElement("名前")
set myDataText=xmldoc.createTextNode(myForm.myName.value)
myDataElement.SetAttribute "年",myForm.myAge.Value
myDataElement.appendChild(myDataText)

myInfoElement.appendChild(myDataElement)

set ret3=xmldoc.createTextNode(vbCRLf)
myInfoElement.appendChild(ret3)

xmldoc.documentElement.appendChild(myInfoElement)

set ret4=xmldoc.createTextNode(vbCRLf)
xmldoc.documentElement.appendChild(ret4)

myForm.xmlSource.value=xmldoc.xml
End Sub
-->
</script>
</head>
<body>
<form name="myForm">
名前:<input type="text" size="30" name="myName"><br>
年:<input type="text" size="10" name="myAge">
<button onClick="makeXml()">XMLの作成</button><br>
<textarea name="xmlSource" cols="60" rows="15"></textarea>
</form>
</body>
</html>

A 回答 (2件)

保存する場所はどこなのでしょう?


Webサーバー側なのでしょうか クライアント側なのでしょうか

サーバー側ならこのフォームをサブミットでサーバーに送信して
サーバーサイドスクリプトで保存することになります
この場合保存するフォルダーに対するNTFSの権限設定などを正しく行いましょう
認証ユーザーしかデータの保存が出来ないとか

クライアント側なら ダウンロードする仕組みを組み込む必要がありそうです

#1氏の回答の INPUTタグ type="file" による指示の場合
HTMLファイルをブラウザで直接開いた場合は可能ですが
Webサーバー経由で開いた場合は出来ないと思います
  ・・・アクセスが拒否されましたが表示される
  ・・・ Webからのローカル資源へのアクセスはセキュリティホールの関係で制限されています
    • good
    • 0

既存のxmlを読み出す方法は、例えば、


1. ファイルダイアログを開くフォームボタンを用意する
2. ファイルダイアログから、オープンするxmlを選択する。
3. 「オープン」ボタンを用意し、onClickハンドラで普通に読み込む。

パーサーの関数に、ファイルに落とすものがあったと思うので(曖昧ですみません)、
それで保存できると思います。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!