2011-08-10 4 views
1

내 Android 애플리케이션에서 XML 파일을 읽고 SQLite 데이터베이스에 저장합니다. "&"으로 구성된 레코드를 읽을 때 전체 텍스트를 사용하지 않습니다."&"기호 뒤에 SAX로 Android XML 구문 분석을 수행 할 수 없습니다.

예를 들어 다음 태그에서 값을 읽을 때 49 ° 38 만 읽습니다. 다른 부분은 손실입니다. 다음 예에서

<latitude> 49°38&#039;59&#039;&#039;N </latitude>

만 가지고에만 "존 리바이스"부분과 "&"다음에 문자를 얻을 손실이다.

<name> John Levis & sons</name> 

누구나 전체 값을 읽을 생각이 있습니까?

이 난의 DefaultHandler를 확장 XML 핸들러 클래스의 값을 어떻게

@Override 
public void characters(char[] ch, int start, int length)throws SAXException 
{ 
    super.characters(ch, start, length); 

    if(currentElement) 
    { 
     currentValue = new String(ch, start, length); 
     currentElement = false; 
    } 
} 
+3

http://stackoverflow.com/questions/1890404/sax-parsing-and-encoding/1891230#1891230 –

+0

대단히 감사합니다. Matthew ... It works .... !!!!! – JibW

답변

0

&은 & A로서 부호화한다 [이 값하는 endElement methgod 받아].; xml의 ​​목적을 위해. 인코딩을 볼 수 있도록 xml 파일의 헤더를 추가 할 수 있습니까?

+0

xml 파일의 헤더입니다 – JibW

+0

데이터베이스에 들어가는 내용을 정확히 보려면 ​​logcat을 기본 핸들러에서 사용 했습니까? –

+0

감사합니다 AlaskanProgrammer ... 문자열 버퍼를 사용하여 XML을 구문 분석하는 방법을 발견했습니다. 매튜가 엄마 한테 ... !!! – JibW

1

SAX의 characters() 콜백은 텍스트 노드를 원하는만큼 작은 조각으로 나눌 수 있습니다. 텍스트의 끝에 도달하면이를 축적하고 처리해야합니다 (일반적으로 endElement 이벤트, 혼합 된 내용의 startElement 이벤트). 많은 파서가 엔티티 참조를 히트 할 때 텍스트를 분할하지만 어디서나 분할 할 수 있습니다.