2017-04-25 13 views
0

는 다음과 같은 XML 태그에서 CDATA 태그 컨텐츠 (카테고리)를 얻을 수있는 방법이 있나요 자식 태그 아래 tagcontent를 얻을 :SAX 파서 :

<category> 
    <h1>Some data</h1> 
    <![CDATA[<br> some data ...]]> 
    <h1>Some data</h1> 
    <![CDATA[<br> more data ...]]> 
</category> 

수 어떻게 든 문자 방법 카테고리 태그하지만 외부 H1 태그 내부에서만 콘텐츠를 ?

감사

답변

0
  1. 재정 startCDATA()DefaultHandler2 구현 endCDATA() 방법.

    DefaultHandler2 handler2 = new DefaultHandler2() { /* ... */ } 
    
  2. 구성 XMLReader

    SAXParser saxParser = SAXParserFactory.newInstance().newSAXParser(); 
    XMLReader xmlReader = saxParser.getXMLReader(); 
    xmlReader.setProperty("http://xml.org/sax/properties/lexical-handler", handler2); 
    
  3. 시작이 콘텐츠는 항상 CDATA 내용 아니라고 언급하는 것을 잊었다 답변에 대한

    saxParser.parse(/* input source */, handler2); 
    
+0

감사하는 구문 분석. 나는 또한 일부 레거시 코드 작업을하고 DefaultHandler는 컨텐트 핸들러로 사용되며 어휘 처리기와 결합 될 수 있습니까? –

+0

@ siki_2014 질문을 잘 모르겠습니다. 'DefaultHandler2'는'DefaultHandler' 대신에'LexicalHandler'로 사용될 수 있습니다. 수업을 사용할 수 없다는 뜻입니까? 어떤 Java 버전을 사용하고 있습니까? –

+0

@ siki_2014 예. 'class MyHandler extends DefaultHandler는 LexicalHandler'를 구현합니다. 'LexicalHandler'에서 메소드를 구현하십시오. 이점은 'DefaultHandler2'를 사용하면 모든 메소드를 구현할 필요가 없다는 것입니다. –