我正在尝试创建一个rest服务,该服务将返回具有包含信息的属性的XML元素列表。
当我从浏览器运行这个rest服务器时,我得到了浏览器返回的正确显示的XML。但是,当我在windows窗体中运行它并尝试从XML中提取属性时,它只提取第一个属性。
这是显示给浏览器的XML。
<string xmlns="http://schemas.microsoft.com/2003/10/Serialization/">
<catalog version="1.1">
<dataset id="XXX" name="XXX" description="XXX" datatype="XXX" rank="XXX" saropsrank="XXX" format="XXX" starttime="XXX" endtime="XXX" extentleft="XXX" extentbottom="XXX" extentright="XXX" extenttop="XXX" source="XXX" wmslayeridstr="XXX" confidence="XXX" directionfrom="XXX" image="XXX" />
</catalog>
</string>
然而,当我将流转换为字符串并将XML显示为文本框时,我得到<
而不是<
和>
而不是>
。我想这是因为我正在将this转换为字符串。
这是我必须检索XML的代码。
WebRequest restWebRequest = WebRequest.Create(url);
restWebRequest.Method = "GET";
restWebRequest.ContentType = "application/x-www-form-urlencoded";
// Send the web request, and get the response from
WebResponse response = restWebRequest.GetResponse();
Stream responseStream = response.GetResponseStream();
StreamReader reader = new StreamReader(responseStream);
string responseFromServer = reader.ReadToEnd();
textBox1.Text = responseFromServer;
我尝试从responseStream中提取XML元素。
任何帮助都会很棒。
谢谢!
对我来说,下面的代码给出了正确的输出。
WebRequest restWebRequest = WebRequest.Create(@"C:TestProjectsWebApplication4WebApplication4XMLFile1.xml");
restWebRequest.Method = "GET";
restWebRequest.ContentType = "application/x-www-form-urlencoded";
// Send the web request, and get the response from
WebResponse response = restWebRequest.GetResponse();
Stream responseStream = response.GetResponseStream();
StreamReader reader = new StreamReader(responseStream);
string responseFromServer = reader.ReadToEnd();
TextBox1.Text = responseFromServer;
我认为你正在从数据库获取XML。尝试使用CDATA标签。
我希望这些链接会对你有用:http://weblogs.sqlteam.com/mladenp/archive/2008/10/21/Different-ways-how-to-escape-an-XML-string-in-C.aspx