一度、データベースを使用せずに、Web サイトの会員情報、商品データ情報、トランザクション情報、Web サイトのカスタマイズ情報を 3 つの XML ファイルに保存してテストしてみたところ、実行結果はデータベースよりもはるかに高速に感じられましたが、そうではありませんでした。テストしてみてください。データ量が小さい場合、XML ファイルには、取得と更新において ACCESS よりも多くの利点があります。
一度、データベースを使用せずに、Web サイトの会員情報、商品データ情報、トランザクション情報、Web サイトのカスタマイズ情報を 3 つの XML ファイルに保存してテストしてみたところ、実行結果はデータベースよりもはるかに高速に感じられましたが、そうではありませんでした。テストしてみてください。
XML 操作の作成、クエリ、変更などの主な方法について説明します。
プログラムコード
NO.1 -- XML データベース data.xml を作成する
次のようにコードをコピーします。
<?xml バージョン=1.0?>
<記録>
<記録>
<名前>カカ</名前>
<qq>154222225</qq>
<電子メール>[email protected]</電子メール>
</レコード>
<記録>
NO.2 -- オブジェクトの作成CreateObject
まずdata.xmlのオブジェクトを作成します
set xmldoc=server.createobjcet(microsoft.xmldom)
xmldoc.load(server.mappath(data.xml)
NO.3 -- 選択されたノードSelectNode
どのノードを操作したいですか? まず、この data.xml にノードがいくつあるかを確認する必要があります。
再帰関数を使用してそれを実行します。
次のようにコードをコピーします。
getnodes(xmldoc)
サブ getnodes(ノード)
薄暗い私
response.write(<br><b>ノード名:</b>&node.nodename&<br><b>NodeTypeString:</b>&node.nodetypestring&<br><b>NodeVal ue:</b>&node.nodevalue&<br><b>テキスト:</b>&node.text&<br><b>node.childnodes.length:</b>&node.childnodes.length&<p>)
もしnode.childnodes.length<>0ならば
i=0からnode.childnodes.length-1の場合
getnodes(node.childnodes(i))
次
終了する場合
エンドサブ
この関数を使用すると、この data.xml には 10 個のノードがあることがわかります。
これらのノードは簡単に見つけることができます。
xmldoc
xmldoc.childnodes(0)
xmldoc.childnodes(1)
xmldoc.childnodes(1).childnodes(0)
xmldoc.childnodes(1).childnodes(0).childnodes(0)
xmldoc.childnodes(1).childnodes(0).childnodes(0).text
xmldoc.childnodes(1).childnodes(0).childnodes(1)
xmldoc.childnodes(1).childnodes(0).childnodes(1).text
xmldoc.childnodes(1).childnodes(0).childnodes(2)
xmldoc.childnodes(1).childnodes(0).childnodes(2).text
配置は非常に簡単ですか? <name> を配置するなど、別の方法がありますか?
xmldoc.selectsinglenode(//名前)
NO.4 -- ノードに値を割り当てる (ノードの値を変更する)
ノードを見つけてその属性を使用する方法を学習したら、値を変更したり割り当てたりできるようになります。
たとえば、<name> の値を caca から wawa に変更します。
xmldoc.selectsinglenode(//name).text=wawa
xmldoc.save(server.mappath(data.xml))
終わり!
NO.5 -- 新しいノードを作成するCreatenewNode
createelement または createnode(,,) を使用します。
例: レコードの下に新しい <age> を作成します。必要なのは 1 つの文だけです。
xmldoc.selectsinglenode(//record).appendchild(xmldoc.createelement(<age>))
<年齢> に値を代入します。
xmldoc.selectsinglenode(//age).text=20
xmldoc.save(server.mappath(data.xml))
終わり!
NO.6 -- ノードを削除するDeleteNode
削除するノードの親ノードと、このノードの特性を指定する必要があります
例: <qq> ノードを削除します。
xmldoc.selectsinglenode(//record).removechild(xmldoc.selectsinglenode(//qq))
例: <name>=caca の <record> を削除します。
xmldoc.selectsinglenode(//records).removechild(xmldoc.selectsinglenode(//record[name='caca']))
xmldoc.save(server.mappath(data.xml))
終わり!
これら 6 つのコードに習熟していて、ASP を使用して XML データベースを制御できれば、ほぼそれで済みます。
================================================= ======
'DOMオブジェクトの作成
set objDom=server.CreateObject(MicroSoft.XMLDom)
'XMLデータを取得する
'方法1 XMLファイルのXMLデータを取得する
objDom.load(c:/test.xml)
'方法2 XMLデータ文字列のデータを取得する
objDom.loadxml(<人><男性名=sd/></人>)
'ノードオブジェクトを作成する
Newnode=objDom.CreateElement(people) を設定します
'このノードに値を与えます
Newnode.Text=人
'このノードに属性を追加します
Set NewAttribute=objDom.CreateNode(属性,名前,)
NewAttribute.Text= 張三
Newnode.SetAttributeNode 新しい属性
'このノードに子ノードを追加します
NewnodeChild=objDom.CreateElement(アドレス)を設定します
Newnode.appendChild NewnodeChild
'このノードオブジェクトを保存します
objDom.appendChild 新しいノード
objDom.save(c:/test.xml)
'ノードオブジェクトを検索
set objtofind=objdom.documentElement.SelectSingleNode(//people/man)
'このノード オブジェクトのノード名、ノード値、特定の属性値、およびすべての XML を取得します
ノード名=objtofind.ノード名
ノード値=objtofind.text
objtofind.GetAttributeNode(name).NodeValue 'name という名前の属性の属性値
'属性ノードオブジェクトを取得します
set objattrtofind=objdom.documentElement.SelectSingleNode(//people/man).GetAttributeNode(name)
'このノードの属性名と属性値を取得します
ノードattrname=objattrtofind.nodename
nodeattrvalue=objattrtofind.nodevalue
'ノードオブジェクトを削除します
set objnode=objdom.documentElement.SelectSingleNode(//people/man) '削除するノード
set objparentnode=objdom.documentElement.SelectSingleNode(//people) '削除するノードの親ノード
objparentnode.removeChild objnode
'ノードのバイトポイントセットを取得します
set objnodes=objdom.documentElement.SelectSingleNode(//people/man).ChildNodes
このコレクションを反復処理します
方法 1
objnode の各要素に対して
response.write element.nodename バイトの名前付け
応答.書き込み要素.テキストのバイトポイント値
次
方法 2
domlength=objnodes.length
for i = 0 から domlength-1
response.write objnodes.childnodes(i).nodename バイトの名前付け
response.write objnodes.childnodes(i).text バイトポイント値
次
'ノードの属性セットを取得します
set objnodes=objdom.documentElement.SelectSingleNode(//people/man).GetAttributeNode(name).attributes
このコレクションを反復処理します
objnode の各要素に対して
response.write element.nodename 属性名
response.write element.nodevalue 属性値
次
xmldom オブジェクトを上手に使って XML ファイルを操作できるようになると、xmlhttp オブジェクトを使って asp で多くの機能を実装できるようになります。
-------------------------------------------------- --------------------------------------
ASPは単純にXMLファイルを操作することしかできませんが、一般的なプログラム開発者にとっては十分です。
以前は、XML 言語にはほとんど触れていませんでしたが、その後、XML にはデータを保存するのに非常に便利であることが徐々にわかりました。 (私の意見では) セキュリティは良くありませんが、一般的なデータ ストレージとしては非常に良い選択肢です。
今日は、XML を Web サイトで使用する必要があるため、ここでいくつかの概要を説明します (後で使用します)。
==============
まず、XML ファイルを読み取れるように ASP を編成します。
default.asp コード
<%
dim ノード、i、nodecount
set Doc = CreateObject(Microsoft.XMLDOM)
Doc.async = false
Doc.load(Server.MapPath(data.xml))
set root = Doc.documentElement
セットnodeLis = root.childNodes
ノードカウント = ノードリストの長さ
i=1 の場合、nodeCount まで
ノードを設定 = nodeLis.nextNode()
コストを設定 = node.attributes.getNamedItem(コスト)
%>
レコード <%=i%>:
<テーブル幅=50% ボーダー=1>
<tr>
<td width=43 rowspan=2><img src=<%=node.selectSingleNode(img).text%>/></td>
<td width=46>本のタイトル</td>
<td width=48>出版社</td>
<td width=42>価格</td>
</tr>
<tr>
<td>
<%=node.selectSingleNode(name).text%>
</td>
<td>
<%=node.selectSingleNode(パブリッシャー).text%>
</td>
<td>
<%= コスト.テキスト%>
</td>
</tr>
</テーブル>
<%
次
%>
====================
次にData.xmlのデータ内容です。
<?xml バージョン=1.0 エンコーディング=UTF-8?>
<データ>
<本の費用=56>
<name>ドリームウィーバー</name>
<出版社>中国鉄道出版局</出版社>
<img>img/dw.jpg</img>
</本>
<本の費用=62>
<name>フラッシュ</name>
<出版社>中国鉄道出版局</出版社>
<img>img/flash.jpg</img>
</本>
<本の費用=48>
<name>フィルワークス</name>
<出版社>中国鉄道出版局</出版社>
<img>img/fw.jpg</img>
</本>
</データ>