XML не может быть возвращен как правильный XML - PullRequest
1 голос
/ 19 сентября 2011

Я пытаюсь создать службу отдыха, которая будет возвращать список элементов XML с атрибутами, содержащими информацию.

Когда я запускаю этот сервер отдыха из браузера, я получаю правильно отображаемый XML, возвращаемый браузером. Однако, когда я запускаю это в форме окна и пытаюсь извлечь атрибуты из 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 в текстовое поле, я получаю &lt; вместо < и &gt; вместо >. Я предполагаю, что это потому, что я преобразовываю это в строку.

Вот код, который мне нужен для получения 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;

Я пытаюсь извлечь элементы XML из responseStream.

Любая помощь будет потрясающей.

Спасибо!

1 Ответ

1 голос
/ 19 сентября 2011

для меня следующий код дает правильный вывод.

WebRequest restWebRequest = WebRequest.Create(@"C:\TestProjects\WebApplication4\WebApplication4\XMLFile1.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.

Надеюсь, эти ссылки будут вам полезны: Объект C # для XML

http://weblogs.sqlteam.com/mladenp/archive/2008/10/21/Different-ways-how-to-escape-an-XML-string-in-C.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...