ASP.Net/Network/URI — различия между версиями
Admin (обсуждение | вклад) м (1 версия) |
Admin (обсуждение | вклад) м (1 версия) |
(нет различий)
|
Текущая версия на 14:53, 26 мая 2010
Read XML data from URI
<source lang="csharp">
<%@ Page language="c#" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" > <HTML>
<HEAD> <title>Default</title> <script runat="server"> protected System.Xml.XmlDocument xmlSource = new System.Xml.XmlDocument(); private void LoadButton_Click(object sender, System.EventArgs e) { System.IO.Stream xmlDocStream = GetXmlDoc(XmlSourceTextBox.Text); if(xmlDocStream!=null) { xmlSource.Load(xmlDocStream); ResultText.Text=xmlSource.InnerXml; } else { ResultText.Text="Could not resolve the XML document."; } } public static System.IO.Stream GetXmlDoc(string xmlsource) { System.IO.Stream stream=null; if(xmlsource.StartsWith("<?xml") || xmlsource.StartsWith("<schema") ) { stream = new System.IO.MemoryStream(System.Text.ASCIIEncoding.ASCII.GetBytes(xmlsource)); } else { try { System.Uri xmluri = new System.Uri(xmlsource); if(xmluri.IsFile) { stream = new System.IO.FileStream(xmlsource, System.IO.FileMode.Open); } else { System.Net.HttpWebRequest request = (System.Net.HttpWebRequest) System.Net.WebRequest.Create(xmluri); System.Net.WebResponse response = request.GetResponse(); stream = response.GetResponseStream(); } }catch(Exception e) { } } return stream; } private void SaveButton_Click(object sender, System.EventArgs e) { if(xmlSource==null || xmlSource.InnerText=="") xmlSource.LoadXml(ResultText.Text); try { string path=FilePathText.Text.Substring(0, FilePathText.Text.LastIndexOf(@"\")); if(System.IO.Directory.Exists(path)) { try { xmlSource.Save(FilePathText.Text); SaveResultsText.Text=FilePathText.Text + " was saved successfully."; }catch(Exception saveErr) { SaveResultsText.Text=saveErr.ToString(); } } else { SaveResultsText.Text="Directory Doesnt Exist, Try a different path."; FilePathText.Text=""; } }catch(Exception saveError) { SaveResultsText.Text=saveError.ToString(); } } </script> </HEAD> <body> <form id="Form1" method="post" runat="server"> <asp:textbox id="XmlSourceTextBox" runat="server" Width="380" Height="162px" TextMode="MultiLine"></asp:textbox>
<asp:button id="LoadButton" runat="server" Text="Load XML Document" OnClick="LoadButton_Click"></asp:button>
<asp:TextBox id="ResultText" runat="server" Width="380" Height="194px" TextMode="MultiLine"></asp:TextBox>
<asp:Button id="SaveButton" runat="server" Text="Save" OnClick="SaveButton_Click"></asp:Button>
<asp:TextBox id="FilePathText" runat="server" Width="380"></asp:TextBox>
<asp:TextBox id="SaveResultsText" runat="server" TextMode="MultiLine" Height="211px" Width="380px"></asp:TextBox> </form> </body>
</HTML>
</source>
Read XML from URI (VB)
<source lang="csharp">
<%@ Page language="vb" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" > <HTML>
<HEAD> <title>Default</title> <script runat="server"> Protected xmlSource As New System.Xml.XmlDocument() Private Sub LoadButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Dim xmlDocStream As System.IO.Stream = GetXmlDoc(XmlSourceTextBox.Text) If Not (xmlDocStream Is Nothing) Then xmlSource.Load(xmlDocStream) ResultText.Text = xmlSource.InnerXml Else ResultText.Text = "Could not resolve the XML document." End If End Sub Public Shared Function GetXmlDoc(ByVal xmlsource As String) As System.IO.Stream Dim stream As System.IO.Stream = Nothing If xmlsource.StartsWith("<?xml") Or xmlsource.StartsWith("<schema") Then stream = New System.IO.MemoryStream(System.Text.ASCIIEncoding.ASCII.GetBytes(xmlsource)) Else Try Dim xmluri As New System.Uri(xmlsource) If xmluri.IsFile Then stream = New System.IO.FileStream(xmlsource, System.IO.FileMode.Open) Else Dim request As System.Net.HttpWebRequest = CType(System.Net.WebRequest.Create(xmluri), System.Net.HttpWebRequest) Dim response As System.Net.WebResponse = request.GetResponse() stream = response.GetResponseStream() End If Catch e As Exception End Try "not a valid uri End If Return stream End Function "GetXmlDoc Private Sub SaveButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) If xmlSource Is Nothing Or xmlSource.InnerText = "" Then xmlSource.LoadXml(ResultText.Text) End If Try Dim path As String = FilePathText.Text.Substring(0, FilePathText.Text.LastIndexOf("\")) If System.IO.Directory.Exists(path) Then Try xmlSource.Save(FilePathText.Text) SaveResultsText.Text = FilePathText.Text + " was saved successfully." Catch saveErr As Exception SaveResultsText.Text = saveErr.ToString() End Try Else SaveResultsText.Text = "Directory Doesnt Exist, Try a different path." FilePathText.Text = "" End If Catch saveError As Exception SaveResultsText.Text = saveError.ToString() End Try End Sub
</script> </HEAD> <body> <form id="Form1" method="post" runat="server"> <asp:textbox id="XmlSourceTextBox" runat="server" Width="380" Height="162px" TextMode="MultiLine"></asp:textbox>
<asp:button id="LoadButton" runat="server" Text="Load XML Document" OnClick="LoadButton_Click"></asp:button>
<asp:TextBox id="ResultText" runat="server" Width="380" Height="194px" TextMode="MultiLine"></asp:TextBox>
<asp:Button id="SaveButton" runat="server" Text="Save" OnClick="SaveButton_Click"></asp:Button>
<asp:TextBox id="FilePathText" runat="server" Width="380"></asp:TextBox>
<asp:TextBox id="SaveResultsText" runat="server" TextMode="MultiLine" Height="211px" Width="380px"></asp:TextBox> </form> </body>
</HTML>
</source>