ASP.Net/Network/URI — различия между версиями

Материал из .Net Framework эксперт
Перейти к: навигация, поиск
м (1 версия)
 
м (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>