MyBatis로 소스 분석 --XPathParse

XPathParse

사용 XPath는 XML을위한 파서 모듈은 구문 분석

그들

메모리 XML 트리 구조, 간단한 조작,하지만 대용량 메모리 풋 프린트에 일회용로드

색소폰

부분적 로딩 만 뒤로 한 방법이 될 수있다 노드의 타입으로 로딩 될 때 해당 등록 된 콜백 함수를 호출하고, 기록 동작을 제공 할 수 없다

StAX를

API JDK가 제공 SAX와 유사한, XML 문서는 이벤트 스트림 프로세싱으로, 애플리케이션 제어를 파서에 의해 구문 분석, 언제든지 중지 할 수 있습니다

XPath를

언어와 SQL 데이터베이스 사이의 관계에 XML 쿼리 언어, XPaht 및 XML과 동등한 사이의 관계

XPathParse

  private final Document document;
  private boolean validation;
  private EntityResolver entityResolver;
  private Properties variables;
  private XPath xpath;

XMLMapperEntityResolver ()는 주로 DTD 파일을로드하는 데 사용됩니다

기본적인 유형 및 스트링 노드 유형의 EVA * 해석 방법 이하의 범위를 제공하는


  public Boolean evalBoolean(String expression) {
    return evalBoolean(document, expression);
  }

  public Boolean evalBoolean(Object root, String expression) {
    return (Boolean) evaluate(expression, root, XPathConstants.BOOLEAN);
  }

들어 evalString()있습니다 사용 PropertyParser.parse기본 값을 처리


public String evalString(Object root, String expression) {
    String result = (String) evaluate(expression, root, XPathConstants.STRING);
    result = PropertyParser.parse(result, variables);
    return result;
  }

에서는 PropertyParser기본값 (기본적으로 OFF)의 사용 여부를 지정하여 기본 구분자 (디폴트 :)
이들 처리의 기본 값으로 위임 GenericTokenParse()처리는
GenericTokenParse(), 정의 된 내부 일반 파서 서브 자리이다 openTokencloseToken자리 기록 개방 및 폐쇄 후 자리에 해결 순차적 인 검색 문자열 리터럴은 리터럴로 해결할 TokenHandler완전한 문자열로 조립 된 결과를 얻을 수 있습니다.

TokenHandler구현은 다음과 같습니다 :

  • VariableTokenHandler
  • ParameterMappingTokenHandler
  • DynamicCheckerTokenParser
  • BindingTokenParser

VariableTokenHandler.handleToken()다음과 같은 방법이다 :

${username:"root"}

기본 구분 기호에 의해 :로 분할하는 usernameroot전자는 기본값입니다 자리 표시 자입니다.
기본값으로하지 않을 경우, 사용 루트 세트에서 사용자 이름 변수를 찾아

evalNode()반환 값은 XNode 유형, 패키지 정보가 dom.Node 만든, 생성자 호출의 parseAttributes ()와 parseBody ()이 노드 객체를 분석하고, 속성 본문 필드의 집합을 초기화합니다.
XNode은 (XPathParse는 객체가 메소드를 호출 캡슐화) 구문 분석에 대한 다양한 정보를 얻을 수 * () 및 평가 * get () 메소드를 제공한다

게시 98 개 원래 기사 · 원 찬양 9 ·은 10000 +를 볼

추천

출처blog.csdn.net/Mutou_ren/article/details/102837842