2014-04-16 3 views
0

NSXMLParser를 사용하여 XML을 구문 분석하고 있습니다. 모든 것은 하나의 XML 태그를 제외하고 잘 작동 :이 태그를 해석 할 때에,XML 구문 분석시 단어 간 간격이 너무 크다

<place>USA , Boston</place> 

, 값은

USA    ,    Boston 

은 어떻게 든 공간이 단어 사이에 추가됩니다. 왜 그런 일이 벌어지고 어떻게 해결할 수 있습니까?

업데이트 내가 사용하는 코드는 간단합니다. parser:foundCharacters: 대리인 호출에서받은 문자열에 이미 공백이 있습니다. 나는 다음을 사용하고있다 :

[_currentString appendString:[string stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]]; 

공백과 줄 바꿈을 없애기 위해 사용하고 있지만 문자열의 처음과 끝에만 사용한다.

+0

'XML'형식을 변경할 수 있습니까? – Buntylm

+1

파싱 코드를 추가 할 수 있습니까? –

답변

0

은 한마디로 당신의 code을 보여 주면 하나의 솔루션 당신이

<place><![CDATA[USA , Boston]]></place> 

CDATA 섹션처럼 CDATA 사이에 태그 값을 추가 할 수있는 것보다 당신이 XML 형식을 편집 할 수 있다면 좋은 것하는 요소의 한 부분입니다 파서가 문자 데이터로만 해석하도록 표시된 콘텐츠

+0

XML을 편집 할 수 없습니다. 구문 분석에 사용 된 코드를 표시하는 – sash

+0

또는 원할 경우 '공백'을 제거 할 수 있습니다. – Buntylm

+0

내 질문을 업데이트했습니다, 감사합니다 – sash

1
  • FoundCharacters 메서드에서 이러한 특수 문자를 바꿔야합니다.

문자열 = 문자열 stringByReplacingOccurrencesOfString @ "\의 t" withString @ ""];

[_currentString appendString:string]; 
+0

작동하지 않았어. 나는 그것들이 탭이 아닌 공백이라고 생각한다. – sash

+0

다음을 사용하십시오. string = [string stringByReplacingOccurrencesOfString : @ "\ n"withString : @ ""]; – Jayaprada