Java에서 다양한 사용자 정의 XML 문서를 구문 분석하는 가장 좋은 방법
문제
Java를 사용하여 여러 개의 개별 사용자 정의 XML 문서를 구문 분석하는 가장 좋은 방법은 무엇입니까?
다른 팁
기본적으로 Java에는 두 가지 주요 XML 구문 분석 방법이 있습니다.
매우 유용한 또 다른 XML 구문 분석 방법은 비록 이 방법보다 조금 더 최신이고 Java6 이후에만 JRE에 포함되었지만 다음과 같습니다. StAX.StAX는 DOM의 트리 기반 접근 방식과 SAX의 이벤트 기반 접근 방식 사이의 중간 방법으로 고안되었습니다.매우 큰 문서를 구문 분석하는 것이 쉽다는 점에서 SAX와 매우 유사하지만 이 경우 응용 프로그램은 이벤트를 응용 프로그램으로 "푸시"하는 대신 파서에서 정보를 "가져옵니다".이 주제에 대한 자세한 설명을 찾을 수 있습니다. 여기.
따라서 달성하려는 목표에 따라 다음 접근 방식 중 하나를 사용할 수 있습니다.
당신은 사용하고 싶을 것입니다 org.xml.sax.XMLReader
(http://docs.oracle.com/javase/7/docs/api/org/xml/sax/XMLReader.html).
구문 분석만 필요하다면 XPath 라이브러리를 사용하는 것이 좋습니다.다음은 좋은 참고 자료입니다. http://www.ibm.com/developerworks/library/x-javaxpathapi.html
그러나 XML을 객체로 변환하는 것을 고려하고 싶을 수도 있으며 그러면 한계가 없습니다.이를 위해 다음을 사용할 수 있습니다. 엑스스트림, 이것은 내가 많이 사용하는 훌륭한 라이브러리입니다
사용 dom4j 도서관
먼저 문서를 읽어보세요
import java.net.URL;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.io.SAXReader;
public class Foo {
public Document parse(URL url) throws DocumentException {
SAXReader reader = new SAXReader();
Document document = reader.read(url);
return document;
}
}
그런 다음 XPATH를 사용하여 필요한 값을 얻으십시오.
public void get_author(Document document) {
Node node = document.selectSingleNode( "//AppealRequestProcessRequest/author" );
String author = node.getText();
return author;
}
다음은 다음을 사용하여 일부 값 값을 추출하는 코드입니다. vtd-xml.
import com.ximpleware.*;
public class extractValue{
public static void main(String s[]) throws VTDException, IOException{
VTDGen vg = new VTDGen();
if (!vg.parseFile("input.xml", false));
VTDNav vn = vg.getNav();
AutoPilot ap = new AutoPilot(vn);
ap.selectXPath("/aa/bb[name='k1']/value");
int i=0;
while ((i=ap.evalXPath())!=-1){
System.out.println(" value ===>"+vn.toString(i));
}
}
}