2012-06-27 3 views
-1

주어진 XML 문서에 존재하거나 존재하지 않을 수있는 용어 목록 (문자열)이 있습니다. 속성 값에서이 문자열을 찾아야 만합니다. 발견되면 자체 태그와 부모 태그를 반환합니다. 자바에서 이것을 어떻게 할 수 있습니까?XML 문서에서 자체 및 부모 태그 찾기

EDIT : DOM Parser 또는 SAX Parser를 사용하여 여러 가지 방법을 찾거나 직접 작성했습니다. 나는 그것을하는 가장 효율적인 방법을 알고 싶다.

+0

무엇을 시도 했습니까? XML 문서를 구문 분석하는 방법을 다루는 수백만 질문을 검색하셨습니까? 그리고 XML은 어떻게 생겼지? 당신이 찾고있는 용어는 무엇입니까? 이 질문은 품질이 매우 좋지 않으므로 편집해야합니다. – Th0rndike

답변

0

답을 직접 찾았습니다. 나는 모든 시작을 밀어 모든 종료 태그를 위해 밖으로 팝업 스택을 사용하는 동안이

SAXParserFactory spfac = SAXParserFactory.newInstance(); 
SAXParser sp = spfac.newSAXParser(); 
EMSAXParser handler = new EMSAXParser(this.terms); 

그런 다음 나는 다음과 같은 방법을 구현 사용했다. 그리고 텍스트가 founf 인 경우 검색이 수행 된 후 해당 용어가 텍스트에서 발견되면 스택의 상위 두 요소가 엿보입니다.

startElement(String uri, String localName, String qName, Attributes attributes); 
characters(char[] buffer, int start, int length); 
endElemnet(String uri, String localName, String qName); 

여러분 모두에게 감사드립니다.

0

The Java API for XML Processing (JAXP)

XML 처리 (JAXP)을위한 자바 API를 변환, 특정 XML 프로세서 구현과 독립적 인 인 API를 사용하여 XML 문서의 유효성을 검사하고 쿼리 할 수 ​​있습니다. JAXP 은 공급 업체가 응용 프로그램 코드에 종속성을 도입하지 않고 자체적으로 구현을 제공 할 수 있도록하는 플러그 가능 레이어를 제공합니다.

The Java XPath API

XPath 식 자세한 문서 객체 모델 (DOM) 네비게이션 코드보다 작성하기가 훨씬 더 쉽다. XML 문서에서 정보를 추출해야하는 경우 가장 간단하고 간단한 방법은 Java 프로그램 내에 XPath 표현식을 포함시키는 것입니다. Java 5에는 XPath로 문서를 쿼리하기위한 XML 객체 모델 독립 라이브러리 인 javax.xml.xpath 패키지가 도입되었습니다.

0

당신은 XML 문서에 XPath 식을 실행할 수 있습니다 :

InputSource source= new InputSource(new FileInputStream(doc))); 
XPathFactory factory = XPathFactory.newInstance(); 
XPath xpath = factory.newXPath(); 
NodeList nodes = (NodeList)xpath.evaluate("//@*[. = \'" + myString + "\']", source, XPathConstants.NODESET); 

당신은 다음 포함 된 노드 개체와 부모 노드를 얻을 수있는 결과 NodeList를 사용할 수 있습니다.