ASP.Net/Network/URI — различия между версиями
Admin (обсуждение | вклад) м (1 версия) |
|
(нет различий)
|
Текущая версия на 11:53, 26 мая 2010
Read XML data from URI
<%@ 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><br />
<asp:button id="LoadButton" runat="server" Text="Load XML Document" OnClick="LoadButton_Click"></asp:button><br />
<asp:TextBox id="ResultText" runat="server" Width="380" Height="194px" TextMode="MultiLine"></asp:TextBox><br />
<asp:Button id="SaveButton" runat="server" Text="Save" OnClick="SaveButton_Click"></asp:Button><br />
<asp:TextBox id="FilePathText" runat="server" Width="380"></asp:TextBox><br />
<asp:TextBox id="SaveResultsText" runat="server" TextMode="MultiLine" Height="211px" Width="380px"></asp:TextBox>
</form>
</body>
</HTML>
Read XML from URI (VB)
<%@ 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><br/>
<asp:button id="LoadButton" runat="server" Text="Load XML Document" OnClick="LoadButton_Click"></asp:button><br/>
<asp:TextBox id="ResultText" runat="server" Width="380" Height="194px" TextMode="MultiLine"></asp:TextBox><br/>
<asp:Button id="SaveButton" runat="server" Text="Save" OnClick="SaveButton_Click"></asp:Button><br/>
<asp:TextBox id="FilePathText" runat="server" Width="380"></asp:TextBox><br/>
<asp:TextBox id="SaveResultsText" runat="server" TextMode="MultiLine" Height="211px" Width="380px"></asp:TextBox>
</form>
</body>
</HTML>