Проблема XmlTextReader - PullRequest
5 голосов
/ 28 марта 2010

Я пытаюсь разобрать этот xml, но c # продолжает выдавать исключение, сообщающее, что в нем есть недопустимые символы. Я не могу скопировать текст из окна сообщения напрямую, поэтому я просмотрел его.

http://img29.imageshack.us/img29/694/xmler.jpg

Редактировать: скопированный текст

<?xml version="1.0" encoding="UTF-8"?><user><id>9572</id><screen_name>fgfdgfdgfdgffg44</screen_name></user>

Вот код для получения строки

string strRetPage = System.Text.Encoding.GetEncoding(1251).GetString(RecvBytes, 0, bytes);

while (bytes > 0)
{
    bytes = socket.Receive(RecvBytes, RecvBytes.Length, 0);
    strRetPage = strRetPage + System.Text.Encoding.GetEncoding(1251).GetString(RecvBytes, 0, bytes);
}
start = strRetPage.IndexOf("<?xml");
string servReply = strRetPage.Substring(start);
servReply = servReply.Trim();
servReply = servReply.Replace("\r", "");
servReply = servReply.Replace("\n", "");
servReply = servReply.Replace("\t", "");

XmlTextReader txtRdr = new XmlTextReader(servReply);

1 Ответ

9 голосов
/ 28 марта 2010

XmlTextReader ожидает URL, содержащий XML, а не сам XML в виде строки. Для анализа XML с помощью XmlTextReader необходимо создать поток и передать его в XmlTextReader

using (StringReader stringReader = new StringReader(servReply))
{
    using (XmlTextReader xmlTextReader = new XmlTextReader(stringReader))
    {
        // Read the xml
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...