2013-03-18 1 views
1

제목에서 NSXMLParser 파서를 사용하여 파일을 구문 분석 할 때 태그가 있는지 여부를 알 수 있습니까? 그리고 만약 그렇다면, 속성의 값을 어떻게 얻을 수 있습니까?NSXMLParser, <?xml> 태그 (있는 경우)로 작성된 인코딩 및 버전을 확인하는 방법

NSXMLParserDelegate의 모든 메소드를 시도했지만 그 중 아무 것도 내 문제를 해결하지 못했습니다 ... 수동으로 해당 태그를 구문 분석해야합니까?

+0

속성을 구문 분석하기 위해 http://stackoverflow.com/questions/6774600/ipad-xml-parsing-with-attributes-deal을 참조 할 수 있습니다. –

+0

각 요소의 속성을 구문 분석하고 싶지 않습니다. , 일반적으로 XML 파일의 첫 번째 태그입니다 ... 나는이 태그가 NSXMLParser (태그도 해당 속성도 없음)에 의해보고되지 않는 것을 확인합니다. – Massimo

+2

인코딩은 관련이 없어야합니다. NSXMLParser는 그것을 읽고 모든 XML 데이터를 그에 따라 NSString으로 변환합니다. 버전과 같은 다른 태그의 경우 아마 운이 없을 것입니다. 이 정보가 정말로 필요한 경우 하위 레벨 XML 라이브러리를 사용해야 할 수도 있습니다. –

답변

2

이론적으로는 -foundProcessingInstructionWithTarget:data: 대리자 콜백을 받아야하지만 실제로는 발생하지 않습니다 (적어도 iOS에서는 OS X를 확인하지 않았습니다).

확실하게 확인하려면 XML 지시문을 찾고 파일의 시작 부분을 직접 파싱해야합니다. NSScanner으로 짧은 읽기 및 스캔으로 충분할 것입니다 (간단한 문자열 테스트 대신 NSScanner을 사용하면 더 나은 공백 처리가 가능함). 분명히

, 이것은 원래 찾고 있던 답이 아니라, XML이 선언 된 문자 어쨌든 설정해야 할 것 때문에, 당신은 단지 utf-8 선언으로 그것을 쓰고 싶어 아무것도 인 것을 추정 할 수있다 수정 된 파일을 읽는 경우 (동일하면 다시 쓸 필요가 없기 때문에) 처리 지시문을 읽고 문자 세트를 올바르게 처리 할 수 ​​있습니다.