2012-06-16 2 views

답변

0

XML 끌어 오기 파서를 작동하는 코드를 게시 할 수 있다면 나는 감사합니다는 XMLPULL V1의 API에서 제공하는 기능을 구문 분석을 정의하는 인터페이스입니다.

파서 기능 설정에 따라 여러 종류가 다음과 같습니다

타당성을 검증하지 않는 FEATURE_VALIDATION 인 경우 XML 1.0 스펙을 정의 FEATURE_PROCESS_DOCDECL이 파서를 확인하는 진정한 로 설정되어있는 경우 XML 1.0 스펙을 정의 파서 FEATURE_PROCESS_DOCDECL이 false 인 경우 true (이는 FEATURE_PROCESS_DOCDECL이 참임을 의미 함) (기본값이며 다른 값이 필요하면 구문 분석을 시작하기 전에 필요를 변경해야 함) 파서는 DOCDECL이없는 조건에서 XML 1.0 호환 비 유효성 검사 파서처럼 작동합니다 XML. 서에 있습니다 (내부 엔티티는 여전히 defineEntityReplacementText()로 정의 될 수 있습니다). 이 작동 모드는 J2ME와 같은 제한된 환경에서의 조작을위한 것입니다. 두 가지 주요 메서드가 있습니다 : next() 및 nextToken(). next()는 상위 구문 분석 이벤트에 대한 액세스를 제공하지만 nextToken()은 하위 수준 토큰에 대한 액세스를 허용합니다.

파서의 현재 이벤트 상태는 getEventType() 메서드를 호출하여 확인할 수 있습니다. 처음에는 구문 분석기가 START_DOCUMENT 상태에 있습니다.

next() 메소드는 파서를 다음 이벤트로 진행시킵니다. 다음에 반환 된 int 값은 현재 파서 상태를 결정하며 getEventType()에 대한 다음 호출에서 반환 된 값과 동일합니다. 다음 이벤트 유형 목

는 다음()

START_TAG 시작 태그를 읽을 된 XML로 볼 수 있습니다. TEXT 텍스트 내용을 읽었습니다. 텍스트 내용은 getText() 메소드를 사용하여 검색 할 수 있습니다. END_TAG (때 다음 모드() nextToken를 (사용, 무시할 수있는 공백 문자를보고하지 않습니다) 대신 검증에) 종료 태그는 더 이상 이벤트를 사용할 수 있습니다 END_DOCUMENT을 읽은 후 처음으로 다음() 또는 nextToken() (또는 다른 다음 *() 메소드는) 다음과 같은 방법으로 XML 선언에서 XML 버전, 독립 및 인코딩을 얻을 수 있습니다 사용자 응용 프로그램이라고합니다 :

버전 : getProperty에 ("http://xmlpull.org/v1/doc/properties.html# xmldecl-version ")은 String ("1.0 ")을 반환하고 XMLDecl이 읽히지 않거나 속성이 지원되지 않는 경우 null을 반환합니다. 독립 실행 형 : getProperty ("http://xmlpull.org/v1/doc/properties.html # xmldecl-standalone ") 부울을 반환합니다. 독립 실행 형 선언이 없거나 속성이 지원되지 않는 경우 null 독립 실행 형 ="예 "인 경우 부울을 반환하고 독립형 ="아니요 "인 경우 부울을 반환합니다. 인코딩 : 가져온 스트림이 알 수없는 인코딩 (setInputStream에 설정되지 않음)이 있었고 XMLDecl에 선언되지 않은 경우는 null getInputEncoding()에서

으로 보일 수 있습니다이 API를 사용하기위한 최소한의 예는 다음과 같습니다

import java.io.IOException; 
import java.io.StringReader; 

import org.xmlpull.v1.XmlPullParser; 
import org.xmlpull.v1.XmlPullParserException; 
import org.xmlpull.v1.XmlPullParserFactory; 

public class SimpleXmlPullApp 
{ 

    public static void main (String args[]) 
     throws XmlPullParserException, IOException 
    { 
     XmlPullParserFactory factory = XmlPullParserFactory.newInstance(); 
     factory.setNamespaceAware(true); 
     XmlPullParser xpp = factory.newPullParser(); 

     xpp.setInput(new StringReader ("<foo>Hello World!</foo>")); 
     int eventType = xpp.getEventType(); 
     while (eventType != XmlPullParser.END_DOCUMENT) { 
      if(eventType == XmlPullParser.START_DOCUMENT) { 
       System.out.println("Start document"); 
      } else if(eventType == XmlPullParser.START_TAG) { 
       System.out.println("Start tag "+xpp.getName()); 
      } else if(eventType == XmlPullParser.END_TAG) { 
       System.out.println("End tag "+xpp.getName()); 
      } else if(eventType == XmlPullParser.TEXT) { 
       System.out.println("Text "+xpp.getText()); 
      } 
      eventType = xpp.next(); 
     } 
     System.out.println("End document"); 
    } 
} 

위 예제 다음 출력을 생성하십시오.

Start document 
Start tag foo 
Text Hello World! 
End tag foo 

필요에 따라 코드 수정 :

+0

외부 웹 사이트에서 xml 텍스트를 가져 오는 방법은 무엇입니까? – user1456613

관련 문제