XMLデータアイランドとDomによるアドレス帳作成のコード例を詳しく解説
一般に、Web サイトにアドレス帳プログラムを提供したい場合は、CGI とバックグラウンド データベース テクノロジを組み合わせて使用する必要があり、これは WEB サーバーでの要件が比較的高く、データベースを提供しない多くの仮想ホストでは実装することさえできません。機能。もちろん、TXTテキストを使用してデータベースを置き換えることもできますが、TXTテキストは操作が難しく、1行ずつ読んで判断する必要があり、フィールドを区切る文字列を使用する必要があり、複雑な操作は実行できません。
「Extensible Markup Language (xml)」を使用してアドレス帳データを保存できるようになりました。これにより、XML の利点が反映されます。XML はデータを表現するための構造化された方法であり、多くのリレーショナル データ構造を含むファイルを保存するのに非常に役立ちます。
1. 基本原則: Microsoft Internet Explorer 5.0 以降のバージョンでは、XML 要素を使用してデータ アイランドを作成できます。XML データは HTML ページに含めることができます。 XML データ アイランドを使用すると、複雑なスクリプトを記述する手間を省くことができます。 DOM は XML ドキュメントを解析でき、ドキュメント内のすべての要素、エンティティ、属性などをオブジェクト モデルで表現できます。生成されたオブジェクト モデルはツリーのノードとなります。各オブジェクトには、メソッドと属性に加えて、DOM にはノードを検索するための多くのメソッドが含まれています。 DOM を使用すると、開発者は動的に XML を作成し、ドキュメントを走査し、ドキュメントのコンテンツを追加 (削除/変更) することができます。DOM によって提供される API はプログラミング言語とは何の関係もないため、一部の DOM 標準および実装には明確に定義されたインターフェイスがありません。異なるパーサーのメソッドは異なる場合があります。
1. XML ファイルを次のように定義します:
<?xml version="1.0" encoding="gb2312"?> <中国计算机世界出版服务公司通信录> <计算机世界 contactID="2"> <部门名称>计算机室</部门名称> <电话号码>139</电话号码> <电子邮件>fsdos@163.net</电子邮件> </计算机世界> </中国计算机世界出版服务公司通信录>
2. クライアントは XML ドキュメントをロードし、アドレス帳が配置されているテーブルの DATASRC='#xmldso' を介して XML ファイルをテーブルにバインドします。DATASRC 属性は、実際には XML 要素の ID 属性の前に追加されます。 # は上で実装されているため、TD 要素の中央に表示する必要がある特定のフィールドを指定できます。
3. DOM テクノロジーを使用して、アドレス帳にレコードを追加および削除します。 xmlhttp プロトコル経由でサーバーに接続し、XML ドキュメントを保存します。
3. XML DOM プログラミングの簡単な説明:
<HTML><BODY bgColor=#a1bae6> <XML id=xmldso src="tele.xml"></XML> <XML id=newid></XML> <!--加载xml数据--> <SCRipT Language=javaScript> newid.async = false; newid.load("newid.xml"); //增加记录; function addID(){ var doc=xmldso.XMLDocument var rootnode=doc.documentElement var sortNode = rootnode.selectNodes("//部门名称") var currentid = sortNode.length-1 var cc=sortNode.item(currentid).text; if ((cc=="尚未输入")||(cc=="")) { alert("请将最后一行数据填写完毕后再增加新的记录!"); } else { var node= newid.documentElement.childNodes(0).cloneNode(true); var contactID=parseInt(sortNode.item(currentid).parentNode.getAttribute("contactID"))+1; node.setAttribute("contactID",contactID); xmldso.documentElement.appendChild(node); } } //删除记录 function delID(whichFld){ var sortNode = xmldso.selectSingleNode("//计算机世界[@contactID='"+whichFld+"']"); if (sortNode.parentNode.childNodes.length>1) sortNode.parentNode.removeChild(sortNode); } </SCRIPT> <script language="vbscript"> Sub cc_onmouseup '保存记录; Dim objXML, objXSL, objfso,strFile, strFileName, strXSL,strURL,TheForm set SaveXMLDoc=xmldso.XMLDocument strURL="dns2.asp" Set objXML = CreateObject("Microsoft.XMLHTTP") '创建MS的XMLHTTP组件; objXML.Open "post",strURL,false '采用Post提交方式; objXML.setrequestheader "content-type","application/x-www-form-urlencoded" objXML.send SaveXMLDoc ' 发送信息,保存XML数据; 'xmlGet = objXML.responsebody '稍等片刻后,得到服务器端传回来的结果; msgbox "保存成功!" Set objXML = Nothing end sub </SCRIPT> <center><b>计算机世界----通信录</b><br><br> <TABLE id="table" DATASRC='#xmldso' BORDER CELLPADDING=3> <!--进行数据绑定--> <THEAD><TH>编号</TH><TH>部门名称</TH><TH>电话号码</TH><TH>电子邮件</TH></THEAD> <TR> <TD><acronym title='点击即可删除该记录'><INPUT TYPE=button size=4 DATAFLD="contactID" onclick="delID(this.value)"></acronym></TD> <TD><INPUT TYPE=TEXT DATAFLD="部门名称"></TD> <TD><INPUT TYPE=TEXT DATAFLD="电话号码"></TD> <TD><INPUT TYPE=TEXT DATAFLD="电子邮件"></TD> </TR> </TABLE> <INPUT TYPE=BUTTON name=dd id=dd VALUE="增加记录" onmouSEOver="this.focus()" onmousedown="addID();"> <INPUT TYPE=BUTTON name=cc id=cc VALUE="保存"></center></BODY></HTML>
2. XML データを受信した後、ファイル オブジェクトを作成して Tele に保存します。 .xml 以上です:
< Set ReceivedDoc = CreateObject("Microsoft.XMLDOM") '创建 XML DOM实例; ReceivedDoc.async=False ReceivedDoc.load Request '接收XML数据; Set files=Server.CreateObject("Scripting.FileSystemObject") Set numtxt=files.CreateTextFile(Server.MapPath("tele.xml"),True) numtxt.WriteLine(replace(ReceivedDoc.xml,"?>"," encoding=""gb2312""?>")) '将XML数据写入文件 numtxt.Close response.write ReceivedDoc.xml >
3. 実際の使用プロセスでは、アドレス帳を表示する Web ページのindex.htm も追加する必要があります。これは、実際には上記の dom.htm の追加をすべて削除した簡素化されたバージョンです。フォーム内のみで関数の削除、変更、保存が可能です。 LABEL を使用してセル内のデータを表示します:
<HTML><BODY bgColor=#a1bae6> <XML id=xmldso src="tele.xml"></XML> <center><b>计算机世界----通信录</b><br><br> <TABLE id="table" DATASRC='#xmldso' BORDER CELLPADDING=3> <THEAD><TH>编号</TH><TH>部门名称</TH><TH>电话号码</TH><TH>电子邮件</TH> </THEAD> <TR> <TD><label DATAFLD="contactID"></label></TD> <TD><label DATAFLD="部门名称"></label></TD> <TD><label DATAFLD="电话号码"></label></TD> <TD><label DATAFLD="电子邮件"></label></TD> </TR> </TABLE> </center></BODY></HTML>
4. XML データ アイランドを Dom テクノロジーと組み合わせて使用する利点: まず第一に、もちろん、それはもたらされる利点です。 XML 自体によって。 XML は、タグ定義の独占を打ち破ります。この記事で使用されている XML ファイルでは、データに含まれる情報が説明されていないため、フィールド名も非常にシンプルかつ明確になります。ディスプレイ上の説明ですが、これは情報の意味論的な意味であり、文書の読みやすさを大幅に高めます。 XML を使用すると、異なるシステム間での情報の転送も容易になります。
2. XML データ アイランドを使用すると、ユーザーはサーバーと頻繁にやり取りすることなく、クライアント上のデータ セットにアクセスして操作できるため、サーバーの負荷を軽減するのに非常に役立ちます。同時に、XML データアイランド自体の特性により、クライアントでのデータ操作が非常に簡単になり、プログラミングの量が削減されます。3. DOM は XML 文書内の情報にアクセスするためにツリー モデルの使用を強制します。XML は本質的に階層構造であるため、この記述方法は非常に効果的です。 DOM インターフェイスを介して、アプリケーションはいつでも XML ドキュメント内のデータの任意の部分にアクセスでき、制御は非常に柔軟です。
4. xmlhttp オブジェクトを使用して XML データをサーバーに送信すると、クライアント ページがちらつくことなく更新されます。
このプログラムは、Windows 2000 プラットフォームに基づいた IIS5.0 および IE5.0 で正常に実行されます。実際の申請プロセスでは、DOMとXSL技術を組み合わせて、XMLデータアイランドのdatapagesize属性やPReviousPage関数、nextPage関数を利用してアドレス帳にソート、フォーマット変換、データ検索などの機能を追加することもできます。 DTD と XML スキーマを使用してアドレス帳データを動的に検証します。
*************************************** ** **********************************
1.index.htm (アドレス帳の表示):<HTML><BODY bgColor=#a1bae6> <XML id=xmldso src="tele.xml"></XML> <center><b>计算机世界----通迅录</b><br><br> <TABLE id="table" DATASRC='#xmldso' BORDER CELLPADDING=3> <THEAD><TH>编号</TH><TH>部门名称</TH><TH>电话号码</TH><TH>电子邮件</TH> </THEAD> <TR> <TD><label DATAFLD="contactID"></label></TD> <TD><label DATAFLD="部门名称"></label></TD> <TD><label DATAFLD="电话号码"></label></TD> <TD><label DATAFLD="电子邮件"></label></TD> </TR> </TABLE> </center></BODY></HTML>
************************************************ ***** ***************************
2. dom.htm (オンラインでアドレス帳を編集):
<HTML><BODY bgColor=#a1bae6> <XML id=xmldso src="tele.xml"></XML> <XML id=newid></XML> <SCRIPT Language=Javascript> newid.async = false; newid.load("newid.xml"); function addID(){ var doc=xmldso.XMLDocument var rootnode=doc.documentElement var sortNode = rootnode.selectNodes("//部门名称") var currentid = sortNode.length-1 var cc=sortNode.item(currentid).text; if ((cc=="尚未输入")||(cc=="")) { alert("请将最后一行数据填写完毕后再增加新的记录!"); } else { var node= newid.documentElement.childNodes(0).cloneNode(true); var contactID=parseInt(sortNode.item(currentid).parentNode.getAttribute("contactID"))+1; node.setAttribute("contactID",contactID); xmldso.documentElement.appendChild(node); } } function delID(whichFld){ var sortNode = xmldso.selectSingleNode("//计算机世界[@contactID='"+whichFld+"']"); if (sortNode.parentNode.childNodes.length>1) sortNode.parentNode.removeChild(sortNode); } </SCRIPT> <script language="vbscript"> Sub cc_onmouseup '当点击“保存”按钮时触发; Dim objXML, objXSL, objFSO,strFile, strFileName, strXSL,strURL,TheForm set SaveXMLDoc=xmldso.XMLDocument strURL="dns2.asp" Set objXML = CreateObject("Microsoft.XMLHTTP") '创建MS的XMLHTTP组件; objXML.Open "post",strURL,false '采用Post提交方式; objXML.setrequestheader "content-type","application/x-www-form-urlencoded" objXML.send SaveXMLDoc ' 发送信息 'xmlGet = objXML.responsebody '稍等片刻后,得到服务器端传回来的结果; msgbox "保存成功!" Set objXML = Nothing end sub </SCRIPT> <center><b>计算机世界----通信录</b><br><br> <TABLE id="table" DATASRC='#xmldso' BORDER CELLPADDING=3> <THEAD> <TH>编号</TH> <TH>部门名称</TH> <TH>电话号码</TH> <TH>电子邮件</TH> </THEAD> <TR> <TD><acronym title='点击即可删除该记录'><INPUT TYPE=button size=4 DATAFLD="contactID" onclick="delID(this.value)"></acronym></TD> <TD><INPUT TYPE=TEXT DATAFLD="部门名称"></TD> <TD><INPUT TYPE=TEXT DATAFLD="电话号码"></TD> <TD><INPUT TYPE=TEXT DATAFLD="电子邮件"></TD> </TR> </TABLE> <INPUT TYPE=BUTTON name=dd id=dd VALUE="增加记录" onmouseover="this.focus()" onmousedown="addID();"> <INPUT TYPE=BUTTON name=cc id=cc VALUE="保存"></center></BODY></HTML>
<% Set ReceivedDoc = CreateObject("Microsoft.XMLDOM") ReceivedDoc.async=False ReceivedDoc.load Request Set files=Server.CreateObject("Scripting.FileSystemObject") Set numtxt=files.CreateTextFile(Server.MapPath("tele.xml"),True) numtxt.WriteLine(replace(ReceivedDoc.xml,"?>"," encoding=""gb2312""?>")) numtxt.Close response.write ReceivedDoc.xml %>
<?xml version="1.0" encoding="gb2312"?> <中国计算机世界出版服务公司通信录> <计算机世界 contactID="1"> <部门名称>电话总机</部门名称> <电话号码>010-68130909</电话号码> <电子邮件>webmaster@ccw.com.cn</电子邮件> </计算机世界> </中国计算机世界出版服务公司通信录>
****************************************************************************
五、newid.xml(通讯录XML初始化文档):
<?xml version="1.0" encoding="gb2312"?> <中国计算机世界出版服务公司通信录> <计算机世界 contactID="1"> <部门名称>尚未输入</部门名称> <电话号码>保密</电话号码> <电子邮件>保密</电子邮件> </计算机世界> </中国计算机世界出版服务公司通信录>
以上就是用XML数据岛结合Dom制作通讯录的代码实例详解的内容,更多相关内容请关注PHP中文网(www.php.cn)!
相关文章:

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











XML ファイルは PPT で開くことができますか? XML、Extensible Markup Language (Extensible Markup Language) は、データ交換とデータ ストレージで広く使用されている汎用マークアップ言語です。 HTML と比較して、XML はより柔軟であり、独自のタグとデータ構造を定義できるため、データの保存と交換がより便利で統一されます。 PPT (PowerPoint) は、プレゼンテーションを作成するために Microsoft によって開発されたソフトウェアです。包括的な方法を提供します。

Python の XML データを CSV 形式に変換する XML (ExtensibleMarkupLanguage) は、データの保存と送信に一般的に使用される拡張可能なマークアップ言語です。 CSV (CommaSeparatedValues) は、データのインポートとエクスポートに一般的に使用されるカンマ区切りのテキスト ファイル形式です。データを処理するとき、分析や処理を容易にするために、XML データを CSV 形式に変換する必要がある場合があります。 Pythonは強力です

C# 開発で XML および JSON データ形式を処理する方法には、特定のコード サンプルが必要です。現代のソフトウェア開発では、XML と JSON の 2 つのデータ形式が広く使用されています。 XML (Extensible Markup Language) はデータの保存と送信に使用されるマークアップ言語であり、JSON (JavaScript Object Notation) は軽量のデータ交換形式です。 C# 開発では、XML と JSON データの処理と操作が必要になることがよくありますが、この記事では、C# を使用してこれら 2 つのデータ形式を処理し、添付する方法に焦点を当てます。

Python を使用した XML でのデータ検証の実装 はじめに: 実生活ではさまざまなデータを扱うことがよくありますが、その中でも XML (Extensible Markup Language) は一般的に使用されるデータ形式です。 XML は可読性と拡張性に優れており、データ交換や設定ファイルなどさまざまな分野で広く使用されています。 XML データを処理する場合、多くの場合、データの整合性と正確性を確認するためにデータを検証する必要があります。この記事では、Python を使用して XML でデータ検証を実装し、対応する

最近最も人気のある携帯電話といえば、発売されたばかりの Xiaomi 14 を思い浮かべる方も多いと思いますが、この携帯電話の性能構成は非常に優れており、ユーザー エクスペリエンスも非常に優れています。 Xiaomi Mi 14 でアドレス帳ブラックリストを設定する方法を見てみましょう。関連コンテンツも一緒に見てみましょう! Xiaomi Mi 14でアドレス帳のブラックリストを設定するにはどうすればよいですか?携帯電話のホーム画面で「電話」アプリを開き、下部のナビゲーション バーで「連絡先」オプションを見つけてクリックして入力します。連絡先リストを参照し、ブラックリストに追加する連絡先を見つけて、連絡先のアバターまたは名前を長押しします。しばらくすると、操作を選択するメニューが表示されます。ポップアップ メニューで [この連絡先をブラックリストに登録する] または同様のオプションを選択します。システムは正しい値を表示します

Python による XML ファイルの解析方法 XML (eXtensibleMarkupLanguage) は、構造化データを表すために使用されるマークアップ言語です。 XML データを処理する場合、多くの場合、XML ファイルを解析して必要な情報を抽出する必要があります。 Python は、ElementTree、lxml など、XML ファイルを解析するための多くのライブラリとモジュールを提供します。この記事では、Python を使用して XML ファイルを解析する方法をコード例とともに紹介します。 Pythonでは、

Jackson は、Java オブジェクトから JSON へ、および JSON から Java オブジェクトへの変換に役立つ Java ベースのライブラリです。 JacksonAPI は他の API よりも高速で、必要なメモリ領域が少なく、大きなオブジェクトに適しています。 XmlMapper クラスの writeValueAsString() メソッドを使用して POJO を XML 形式に変換します。対応する POJO インスタンスをパラメーターとしてこのメソッドに渡す必要があります。構文 publicStringwriteValueAsString(Objectvalue)throwsJsonProcessingExceptionExampleimp

PHPXML 関数を使用して XML データを処理します。 XML データを解析します。 simplexml_load_file() および simplexml_load_string() は、XML ファイルまたは文字列を読み込みます。 XML データにアクセスする: SimpleXML オブジェクトのプロパティとメソッドを使用して、要素名、属性値、およびサブ要素を取得します。 XML データを変更する: addChild() メソッドと addAttribute() メソッドを使用して、新しい要素と属性を追加します。シリアル化された XML データ: asXML() メソッドは、SimpleXML オブジェクトを XML 文字列に変換します。実用的な例: 製品フィード XML を解析し、製品情報を抽出し、変換してデータベースに保存します。
