सामग्री

फोन Apps बनाने पर प्रकाशन WordPress

XML डेटाबेस


इस उन्नत विषय कैसे बहुत साधारण XML डेटाबेस के दो प्रकार बनाने के लिए दर्शाता है।

पढ़ना XML सीधे आगे है। तथापि, यह सीधे HTML से XML सहेजें करने के लिए असंभव है या Hippani Animator सुरक्षा प्रतिबंधों के कारण। एक सर्वर पृष्ठ वेब सर्वर के साथ सहभागिता करने के लिए आवश्यक है। हम सी # में लिखा ASPX सर्वर पृष्ठों का उपयोग किया है। अन्य सर्वर पेजेज़ और भाषाओं के बजाय इस्तेमाल किया जा सकता है। ASPX और सी # इस प्रलेखन के दायरे से बाहर हैं। को अनुकूलित और पर इन उदाहरणों का विस्तार करने के लिए, आगे पढ़ना आवश्यक हो सकता है।

आप एक Microsoft Windows वेब सर्वर (IIS) ASPX फ़ाइलों को होस्ट करने के लिए की आवश्यकता होगी। आप भी बनाएँ और फ़ाइलें लिखने के लिए वेब सर्वर अनुमतियाँ सेट करने के लिए की आवश्यकता होगी।


एकल रिकॉर्ड डेटाबेस

इस सरल डेटाबेस मानों की कोई सूची संग्रहीत करता है। प्रत्येक मान एक नाम है।

उदाहरण के लिए:

HighScore=10000

PlayerName=Zara

Location=France

कहा जाता है अपने वेब सर्वर पर कोई ASPX फ़ाइल बनाएँ XMLDatabase.aspx. निम्न कोड का उपयोग करें। कोई ASPX फ़ाइल एक्सटेंशन के साथ केवल एक पाठ फ़ाइल है .aspx.


<%@ Page Language="C#" %>
<%@ Import namespace="System.IO" %>
<%@ Import namespace="System.Xml" %>
<%@ Import namespace="System.Collections.Generic" %>
<%
string DataFilename
=Server.MapPath("Data.xml");
Dictionary
<string,string> MyData=new Dictionary<string,string>();
bool DataChanged
=false;

// Load the xml data into a dictionary
if(File.Exists(DataFilename)){
XmlDocument Doc
=new XmlDocument();
Doc.Load
(DataFilename);
XmlNode N
=Doc.DocumentElement.FirstChild;
while(N!=null){ //Iterate through the nodes
if(!MyData.ContainsKey(N.Name)){ //If the dictionary does not contain the node name, add it and the text it contains.
MyData.Add
(N.Name,N.InnerText);
}
N
=N.NextSibling;
}
}

//Add any new Name and Value values sent to the page.
string Name
=Context.Request["Name"];
string Value
=Context.Request["Value"];
if(!String.IsNullOrEmpty(Name)){
if(!MyData.ContainsKey(Name)){ //If the dictionary does not contain the name, add it and the value.
MyData.Add
(Name,Value);
}else{ //Replace the value if the name already exists in the dictionary.
MyData
[Name]=Value;
}
DataChanged
=true;
}

//Generate a new xml file.
StringBuilder NewXML
=new StringBuilder();
NewXML.Append
("<?xml version=\"1.0\" encoding=\"utf-8\" ?>\r\n");
NewXML.Append
("<Data>\r\n");
Dictionary
<string,string>.Enumerator Enum=MyData.GetEnumerator();
while(Enum.MoveNext()){
NewXML.Append
("<"+Enum.Current.Key+">"+HttpUtility.HtmlEncode(Enum.Current.Value)+"</"+Enum.Current.Key+">\r\n");
}
NewXML.Append
("</Data>\r\n");

//Save the data file if it has been changed.
if(DataChanged){
StreamWriter SW
= new StreamWriter(DataFilename);
SW.WriteLine
(NewXML.ToString());
SW.Close
();
}

//Return the xml file.
Context.Response.ContentType
= "text/xml";
Response.Write
(NewXML.ToString());
%>


ASPX पृष्ठ सर्वर किसी XML फ़ाइल के हेरफेर संभालती है।

यदि XML फ़ाइल मौजूद है, तब ASPX XML डेटा किसी शब्दकोश में लोड करता है। तब यह अगर किसी भी नए मानों प्राप्त किया गया है को देखने के लिए जाँच करता है। यदि कोई नया मान है, यह शब्दकोश करने के लिए जोड़ने के लिए, वर्तमान मान अद्यतन करें यदि यह पहले से ही मौजूद है। यह तब शब्दकोश पर आधारित एक नया XML फ़ाइल बनाता है। अगर कोई नया मान में जोड़ा था, तब नए XML फ़ाइल सहेजी जाती है। अंत में, XML लौट आया है।

आप इसे किसी वेब ब्राउज़र में खोलने के द्वारा पृष्ठ परीक्षण कर सकते हैं।

डेटा ASPX पृष्ठ लोड हो रहा है और एक नाम और मान सहित द्वारा भेजा जाता है।

उदाहरण के लिए:

http://www.MyWebServer.com/XMLDatabase.aspx?Name=HighScore&Value=10000

http://www.MyWebServer.com/XMLDatabase.aspx?Name=PlayerName&Value=Zara

http://www.MyWebServer.com/XMLDatabase.aspx?Name=Location&Value=France

डेटा एक XML फ़ाइल है कि इस तरह दिखता में स्टोर किया जाएगा:


<Data>
<HighScore>10000</HighScore>
<PlayerName>Zara</PlayerName>
<Location>France</Location>
</Data>

इस ASPX पेज में डेटा भेजने के लिए कैसे का एक उदाहरण है Hippani Animator.


var Name="HighScore";
var Value="10000";
OpenXMLUrl("http://www.MyWebServer.com/XMLDatabase.aspx?Name="+escape(Name)+"&Value="+escape(Value),Result);
function Result(XML){
if(XML.status==200){
alert("Saved.");
}else{
alert("Error Code "+XML.status);
}
}

डेटा बस ASPX फ़ाइल लोड हो रहा है द्वारा प्राप्त किया है।

उदाहरण के लिए:
http://www.MyWebServer.com/XMLDatabase.aspx

इस में ASPX पृष्ठ से डेटा प्राप्त करने के लिए कैसे का एक उदाहरण है Hippani Animator.


OpenXMLUrl("http://www.MyWebServer.com/XMLDatabase.aspx",Result);
function Result(XML){
if(XML.status==200){
var Node=XML.documentElement.firstChild;
var List="List:\r\n";
while(Node!=null){
List
+=Node.nodeName+"="+Node.firstChild.nodeValue+"\r\n";
Node
=Node.nextSibling;
}
alert(List);
}else{
alert(XML.status+" Error!!!");
}
}

एकाधिक अभिलेख डेटाबेस

यह अधिक जटिल डेटाबेस अभिलेखों की कोई सूची संग्रहीत करता है। प्रत्येक अभिलेख मानों की एक सूची शामिल है। प्रत्येक मान एक नाम है।

उदाहरण के लिए:

1 रिकॉर्ड:

FirstName=Andrew

Age=23

रिकॉर्ड 2:

FirstName=Andrea

Age=42

XML डेटाबेस की इस प्रकार प्रभावी ढंग से अप करने के लिए 100 रिकॉर्ड्स के लिए काम करेंगे। बड़े डेटाबेस या तो एकाधिक XML फ़ाइलों की आवश्यकता होगी या एक उचित डेटाबेस SQL के रूप से जुड़ा हो।

कहा जाता है अपने वेब सर्वर पर किसी अन्य ASPX फ़ाइल बनाएँ XMLDatabase2.aspx. निम्न कोड का उपयोग करें।


<%@ Page Language="C#" %>
<%@ Import namespace="System.IO" %>
<%@ Import namespace="System.Xml" %>
<%@ Import namespace="System.Collections.Generic" %>
<%
string DataFilename
=Server.MapPath("Data2.xml");
Dictionary
<int,Dictionary<string,string>> MyData=new Dictionary<int,Dictionary<string,string>>();
bool DataChanged
=false;
Dictionary
<string,string> Record=null;
int Index
=0;

// Load the xml data into a dictionary
if(File.Exists(DataFilename)){
XmlDocument Doc
=new XmlDocument();
Doc.Load
(DataFilename);
XmlNode N
=Doc.DocumentElement.FirstChild,M=null;
while(N!=null){ //Iterate through the record nodes
Index
=Convert.ToInt32(N.Attributes["Index"].Value); //Get the index value of the record.
Record
=new Dictionary<string,string>();
M
=N.FirstChild;
while(M!=null){ //Iterate through the value nodes
if(!Record.ContainsKey(M.Name)){ //If the record does not contain the node name, add it and the text it contains.
Record.Add
(M.Name,M.InnerText);
}
M
=M.NextSibling;
}
if(!MyData.ContainsKey(Index)){ //If the dictionary does not contain the record index, add it.
MyData.Add
(Index,Record);
}
N
=N.NextSibling;
}
}

//Add any new Name and Value values sent to the page. Use the Index value to locate the correct record.
string Name
=Context.Request["Name"];
string Value
=Context.Request["Value"];
Index
=Convert.ToInt32(Context.Request["Index"]);
if(!String.IsNullOrEmpty(Name)&&Index>0){
if(MyData.ContainsKey(Index)){ //If the dictionary contains the record index.
Record
=MyData[Index];
}else{ //If the dictionary does not contain the record. Create a new empty record and add it.
Record
=new Dictionary<string,string>();
MyData.Add
(Index,Record);
}
if(!Record.ContainsKey(Name)){ //If the record does not contain the name, add it and the value.
Record.Add
(Name,Value);
}else{ //Replace the value if the name already exists in the record.
Record
[Name]=Value;
}
DataChanged
=true;
}

//Generate a new xml file.
StringBuilder NewXML
=new StringBuilder();
NewXML.Append
("<?xml version=\"1.0\" encoding=\"utf-8\" ?>\r\n");
NewXML.Append
("<Data>\r\n");
Dictionary
<int,Dictionary<string,string>>.Enumerator Enum=MyData.GetEnumerator();
Dictionary
<string,string>.Enumerator EnumRecord;
while(Enum.MoveNext()){
NewXML.Append
("<Record Index=\""+Enum.Current.Key+"\">\r\n");
EnumRecord
=Enum.Current.Value.GetEnumerator();
while(EnumRecord.MoveNext()){
NewXML.Append
("<"+EnumRecord.Current.Key+">"+HttpUtility.HtmlEncode(EnumRecord.Current.Value)+"</"+EnumRecord.Current.Key+">\r\n");
}
NewXML.Append
("</Record>\r\n");
}
NewXML.Append
("</Data>\r\n");

//Save the data file if it has been changed.
if(DataChanged){
StreamWriter SW
= new StreamWriter(DataFilename);
SW.WriteLine
(NewXML.ToString());
SW.Close
();
}

//Return the xml file.
Context.Response.ContentType
= "text/xml";
Response.Write
(NewXML.ToString());
%>


यह ASPX सर्वर पृष्ठ और अधिक जटिल है। फिर, यह एक XML फ़ाइल के हेरफेर संभालती है।

यदि XML फ़ाइल मौजूद है, तब ASPX XML डेटा किसी शब्दकोश में लोड करता है। तब यह अगर किसी भी नए मानों प्राप्त किया गया है को देखने के लिए जाँच करता है। अगर वहाँ है एक नए मूल्य और एक सूचकांक है, यह शब्दकोश में रिकॉर्ड जोड़ने के लिए, वर्तमान मान अद्यतन करें यदि यह पहले से ही मौजूद है। यह तब शब्दकोश पर आधारित एक नया XML फ़ाइल बनाता है। अगर कोई नया मान में जोड़ा था, तब नए XML फ़ाइल सहेजी जाती है। अंत में, XML लौट आया है।

आप इसे किसी वेब ब्राउज़र में खोलने के द्वारा पृष्ठ परीक्षण कर सकते हैं।

डेटा ASPX पृष्ठ लोड हो रहा है और एक सूचकांक, नाम और मान सहित द्वारा भेजा जाता है।

उदाहरण के लिए:

http://www.MyWebServer.com/XMLDatabase2.aspx?Index=1&Name=FirstName&Value=Andrew

http://www.MyWebServer.com/XMLDatabase2.aspx?Index=1&Name=Age&Value=23

http://www.MyWebServer.com/XMLDatabase2.aspx?Index=2&Name=FirstName&Value=Andrea

http://www.MyWebServer.com/XMLDatabase2.aspx?Index=2&Name=Age&Value=42

डेटा एक XML फ़ाइल है कि इस तरह दिखता में स्टोर किया जाएगा:


<Data>
<Record Index="1">
<FirstName>Andrew</FirstName>
<Age>23</Age>
</Record>
<Record Index="2">
<FirstName>Andrea</FirstName>
<Age>42</Age>
</Record>
</Data>

इस ASPX पेज में डेटा भेजने के लिए कैसे का एक उदाहरण है Hippani Animator.


var Index=1;
var Name="FirstName";
var Value="Andrew";
OpenXMLUrl("http://www.MyWebServer.com/XMLDatabase2.aspx?Index="+Index+"&Name="+escape(Name)+"&Value="+escape(Value),Result);
function Result(XML){
if(XML.status==200){
alert("Saved.");
}else{
alert("Error Code "+XML.status);
}
}


डेटा बस ASPX फ़ाइल लोड हो रहा है द्वारा प्राप्त किया है।

उदाहरण के लिए:
http://www.MyWebServer.com/XMLDatabase.aspx

इस में ASPX पृष्ठ से डेटा प्राप्त करने के लिए कैसे का एक उदाहरण है Hippani Animator.


OpenXMLUrl("http://www.MyWebServer.com/XMLDatabase2.aspx",Result);
function Result(XML){
if(XML.status==200){
var Record=XML.documentElement.firstChild,Node=null;
var List="List:\r\n";
while(Record!=null){
List
+="Record: "+Record.attributes.getNamedItem("Index").value+"\r\n";
Node
=Record.firstChild;
while(Node!=null){
List
+=" "+Node.nodeName+"="+Node.firstChild.nodeValue+"\r\n";
Node
=Node.nextSibling;
}
Record
=Record.nextSibling;
}
alert(List);
}else{
alert(XML.status+" Error!!!");
}
}

फोन Apps बनाने पर प्रकाशन WordPress
इस दस्तावेज़ का उपयोग कर एक ऑनलाइन अनुवादक अंग्रेज़ी से, अनुवाद किया गया था। यदि आप किसी भी गलतियाँ मिल हम माफी। यदि आप हमें सुधार करने में मदद करने के लिए चाहते हैं। एक अनुवाद संपादक में है Hippani Animator (मदद मेनू) में। हम किसी को भी, जो 100 से अधिक वाक्यांशों को सही करने के लिए नि: शुल्क लाइसेंस कुंजी बाहर दे। कृपया अधिक विवरण के लिए हमसे संपर्क करें।