2010-05-19 3 views
1

StreamReader 클래스를 사용하여 Google에서 내 지오 코딩 프로세스 용 XML을 가져옵니다.C# Stream Reader XML에 n을 (를) 추가합니다.

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을 다시 얻을 수 있지만, 내가 VB에서 같은 코드를 가지고 있으며이 작업을 수행하지 않는 XML

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

에 \ n을 다른 엑스트라를 추가합니다. 이 콘솔 앱의 VB 버전을 사용하여 내 정보를 성공적으로 지오 코딩 할 수 있습니다.

C# 버전에서이 추가 데이터를 다시 가져 오는 XML에 추가하는 이유가 있습니까? 모든 것을 C#으로 변환하려고 최선을 다하고 있습니다. 나는 VB에서 코딩하는 것을 즐긴다. 그것이 진정으로 \ n을 반환하는 경우 y는 단지

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

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) 
+0

VB 코드도 게시 할 수 있습니까? 신품 – Bryan

+0

wreqGeoCode은 어둡게하여 WebRequest이 WebRequest.Create = (strURL) 어둡게 wresGeoCode로서 WebResponse를 wreqGeoCode.GetResponse = 뉴에서는 StreamReader로 어둡게 srGeoCode (wresGeoCode.GetResponseStream())에 strXML 어둡게 같이 문자열로서 srGeoCode.ReadToEnd =() 희미한 해당 xmldoc XmlDocument xmlDoc.LoadXml (strXML) 이것은 WebRequest 호출을 결합 할 수 있다는 것을 알기 전에 발생했습니다. 나는 또한 WebRequest를 결합하지 않고 C# 방식으로 시도했다. – VoltaicShock

답변

4

문자열을로드하려면 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); 
    } 
} 

using 문은 보장 그 WebResponseStream 얻을 예외가 발생하더라도, 청소.

+0

+1, 네, 확실히이 하나, 그의 VB 버전은 LoadXml을 사용하고 작동합니다. 그의 C# 하나는로드를 사용하고 그렇지 않습니다. – Kazar

+0

감사합니다. VB에서 복사 한 줄 알았지 만 그렇지 않은 것 같습니다. 눈을 두 번째로 보는 것이 항상 좋은 방법입니다. – VoltaicShock

+0

감사! 좀 더 효율적으로 코드를 변경해 보겠습니다. 참고로, 우리는 같은 성을 가진다 - lol – VoltaicShock

1

여기에 언급 : 여기

은 VB 코드입니다.

+0

아마 그 일을 할 수 있습니다. 왜 그 일을하는지 보려고하는 것일뿐입니다. – VoltaicShock