내 앱은 무료 일기 예보 웹 서비스가이 URL에 호출 하지만이 이상한 일이지만, 반환 된 NSMutableData
은 NSUTF8StringEncoding
을 통해 올바르게 문자열로 변환되지 않습니다. 기본적으로 개폐 XML 태그의 "<"및 ">"문자를 변환하지 못하여 "& l;"을 표시합니다. 및 "&g t;" 대신.스위프트 문자열 인코딩 및 NSXMLParser 구문 분석 문제
func connection(connection: NSURLConnection, didReceiveData data: NSData) {
webServiceData!.appendData(data)
}
func connectionDidFinishLoading(connection: NSURLConnection) {
let XMLResponseString = NSString(data: webServiceData!, encoding: NSUTF8StringEncoding)!
println("XMLResponseString = \(XMLResponseString)")
}
나는 println
문에서 얻을 출력이 :
<?xml version="1.0" encoding="utf-8"?>
<string xmlns="http://www.webserviceX.NET"><?xml version="1.0" encoding="utf-16"?>
<CurrentWeather>
<Location>DALLAS EXECUTIVE AIRPORT, TX, United States (KRBD) 32-41N 096-52W 203M</Location>
<Time>Dec 30, 2014 - 08:53 AM EST/2014.12.30 1353 UTC</Time>
<Wind> from the NE (050 degrees) at 12 MPH (10 KT):0</Wind>
<Visibility> 9 mile(s):0</Visibility>
<SkyConditions> overcast</SkyConditions>
<Temperature> 39.9 F (4.4 C)</Temperature>
<DewPoint> 34.0 F (1.1 C)</DewPoint>
<RelativeHumidity> 79%</RelativeHumidity>
<Pressure> 30.42 in. Hg (1030 hPa)</Pressure>
<Status>Success</Status>
</CurrentWeather></string>
그래서 당신은 내가 처음 받고 있어요 볼 수
문제는 connectionDidFinishLoading
기능 것 같다 2 개의 태그가 정확하게 - "<? XML>"과 "< string xmlns>"태그가 있지만 나머지는 모두 "& lt;"으로 표시됩니다. 및 "&g t;"
정말 이상한 점은 첫 번째 태그는 encoding="utf-8"
이고 두 번째 줄 (끝 부분)은 encoding="utf-16"
입니다.
let XMLResponseString = NSString(data: webServiceData!, encoding: NSUTF16StringEncoding)!
을하고는 기본적으로 나에게 중국어 찾고 문자를 주었다
그래서 나는NSUTF16StringEncoding
를 사용했습니다. (원래 문이
myXMLParser = NSXMLParser(contentsOfURL:theURL!)!
했다
: 는 또한과 같이 반환 것 대신 NSMutableData의 URL에 직접 파서를 실행하려고myXMLParser = NSXMLParser(data:webServiceData)
을하지만 이들 중 어느 쪽 일
그럼 어떻게 될까요? 제대로 작동하려면 어떻게해야합니까?
재미 있습니다. 그리고 이상한. 그렇다면 'http : //www.webservicex.net/globalweather.asmx/GetWeather? CityName = Boston & CountryName = United + States' URL을 브라우저에 복사하여 붙여 넣으면 유효한 XML 응답을 얻을 수 있다는 사실을 어떻게 설명 할 수 있습니까? ? 그건 나에게 의미가 없다. – sirab333
브라우저는 <을 <및 >>로 변환하므로 사용자가 보는 것과 실제로 반환되는 것은 다른 두 가지입니다. 그들의 웹 서비스는 솔직히 bizzare 인 '다른 XML 문서 내부에 XML 인코딩 된 문자열 반환'인 것으로 보입니다. 그러나 그것은 그것이하는 것입니다. – AlBlue