在C#中解析XML时路径错误中的非法字符

Sat*_*hat 32 c# xml visual-studio-2008

我在使用XMLTextReader方法时遇到"路径错误中的非法字符".基本上,我正在向tr.im发送一个长URL,并且tr.im将响应作为XML流发送,我正在尝试解析但是我得到了上面提到的错误.你能指导我为什么我会收到这个错误以及我哪里出错了?这是代码:

WebRequest wrURL;
Stream objStream;
string strURL;
wrURL = WebRequest.Create("http://api.tr.im/api/trim_url.xml?url=" + HttpUtility.UrlEncode(txtURL.Text));
objStream = wrURL.GetResponse().GetResponseStream();
StreamReader objSReader = new StreamReader(objStream);
strURL = objSReader.ReadToEnd().ToString();
XmlTextReader reader = new XmlTextReader(strURL); //getting the error at this point
Run Code Online (Sandbox Code Playgroud)

我正在使用Visual Studio 2008,Express Edition

Jar*_*Par 71

你之所以使用XmlTextReader的构造函数,它是以文件路径作为参数,而是传递XML内容.

请尝试以下代码

XmlTextReader reader = new XmlTextReader(new StringReader(strURL));
Run Code Online (Sandbox Code Playgroud)


Dar*_*rov 13

XmlTextReader构造函数接受一个字符串,该字符串指向存储XML文件的URL.你传递的是XML本身,当然这是一条无效的路径.试试这个:

using (var client = new WebClient())
{
    var xml = client.DownloadString("http://api.tr.im/api/trim_url.xml?url=" + HttpUtility.UrlEncode(txtURL.Text));
    using (var strReader = new StringReader(xml))
    using (var reader = XmlReader.Create(strReader))
    {

    }
}
Run Code Online (Sandbox Code Playgroud)