Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
向XML添加\n的C#流读取器_C#_Xml_Streamreader_Geocode - Fatal编程技术网

向XML添加\n的C#流读取器

向XML添加\n的C#流读取器,c#,xml,streamreader,geocode,C#,Xml,Streamreader,Geocode,我使用StreamReader类从Google获取用于地理编码过程的XML StreamReader srGeoCode = new StreamReader(WebRequest.Create(Url).GetResponse().GetResponseStream()); String GeoCodeXml = srGeoCode.ReadToEnd(); XmlDocument XmlDoc = new XmlDocument(); GeoCode oGeoCode = new GeoCo

我使用StreamReader类从Google获取用于地理编码过程的XML

StreamReader srGeoCode = new StreamReader(WebRequest.Create(Url).GetResponse().GetResponseStream());
String GeoCodeXml = srGeoCode.ReadToEnd();
XmlDocument XmlDoc = new XmlDocument();
GeoCode oGeoCode = new GeoCode();
XmlDoc.Load(GeoCodeXml);
我得到了XML,但它向XML中添加了\n和其他附加内容

<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<kml xmlns=\"http://earth.google.com/kml/2.0\"><Response>\n  <name>
你不仅仅是这样

   GeoCodeXml=GeoCodeXml.Replace("\n","");
如果它真的返回此处提到的\n值。

y不只是这样做

   GeoCodeXml=GeoCodeXml.Replace("\n","");

如果要加载字符串,则需要XmlDoc.LoadXml。从文件加载


顺便说一句,替代方案也更有效。您可以直接从流中加载文档:

WebRequest webRequest = WebRequest.Create(Url);
using (WebResponse webResponse = webRequest.GetResponse())
{
    using (Stream responseStream = webResponse.GetResponseStream())
    {
        XmlDocument XmlDoc = new XmlDocument();
        GeoCode oGeoCode = new GeoCode();
        XmlDoc.Load(responseStream);
    }
}

使用
语句可以确保
WebResponse
Stream
得到清理,即使抛出异常也是如此。

如果要加载字符串,需要XmlDoc.LoadXml。从文件加载


顺便说一句,替代方案也更有效。您可以直接从流中加载文档:

WebRequest webRequest = WebRequest.Create(Url);
using (WebResponse webResponse = webRequest.GetResponse())
{
    using (Stream responseStream = webResponse.GetResponseStream())
    {
        XmlDocument XmlDoc = new XmlDocument();
        GeoCode oGeoCode = new GeoCode();
        XmlDoc.Load(responseStream);
    }
}

使用
语句可以确保
WebResponse
Stream
得到清理,即使抛出异常也是如此。

您也可以发布VB代码吗?Dim wreqGeoCode as WebRequest=WebRequest.Create(strURL)Dim wresGeoCode As WebResponse=wreqGeoCode.GetResponse Dim srGeoCode As New StreamReader(wresGeoCode.GetResponseStream())Dim strXML As String=srGeoCode.ReadToEnd()Dim xmlDoc As New XmlDocument xmlDoc.LoadXml(strXML)这是在我意识到我可以组合WebRequest调用之前。我还尝试了C#方式,没有组合WebRequest。你也可以发布VB代码吗?Dim wreqGeoCode作为WebRequest=WebRequest。Create(strURL)Dim wresGeoCode作为WebResponse=wreqGeoCode.GetResponse Dim srGeoCode作为新的StreamReader(wresGeoCode.GetResponseStream())Dim strXML作为String=srGeoCode.ReadToEnd()将xmlDoc定义为新的XmlDocument xmlDoc.LoadXml(strXML),这是在我意识到可以组合WebRequest调用之前。我也尝试了C#方式,但没有结合WebRequest。我可能可以这样做,只是想看看它为什么这样做。我可能可以这样做,只是想看看它为什么这样做。+1,是的,肯定是这一个,他的VB版本使用LoadXml,它工作正常。他的C#one使用Load,但它不使用。谢谢。我以为我是从VB版复制过来的,但看起来我没有。总是很高兴有第二双眼睛看你的代码。谢谢!我将研究更改代码以提高效率。另一方面,我们的姓氏是一样的——lol+1,是的,肯定是这一个,他的VB版本使用LoadXml,它可以工作。他的C#one使用Load,但它不使用。谢谢。我以为我是从VB版复制过来的,但看起来我没有。总是很高兴有第二双眼睛看你的代码。谢谢!我将研究更改代码以提高效率。顺便说一句,我们的姓是一样的——lol