2010-03-15 10 views
0

Java 플랫폼에서 문자열에있는 XML을 구문 분석하는 가장 빠른 방법 (가장 빠른 성능)은 무엇입니까?XML을 구문 분석하는 가장 빠른 방법은 무엇입니까?

파일 크기는 약 25kb가 될 수 있습니다.

제약 조건은 xml 파일을 표시하지 않고 XML 문자열을 구문 분석해야한다는 것입니다.

+0

XML이 invaid되어 제대로 표시되지 않습니다. –

+3

또한 어떤 플랫폼 언어/라이브러리를 사용하고 있습니까? –

+0

XML이 실제로 그런 식으로 부서지면 어떤 종류의 문자열 일치가 유일한 방법 일 수 있습니다. 그러나 당신은 더 많은 문제가있을 것입니다. 더 많은 작업을 할 수 있도록 깨진 'XML'샘플을 더 제공하십시오. –

답변

3

일반적으로 사용자는 DOM, SAXStAX의 세 가지 옵션이 있습니다. DOM이 더 느립니다.

StAX은 "SAX 효율이있는 DOM 용이성"을 제공한다고합니다. 그러나 보여준 문서가 전체 문서 일 경우 - 실제로는 중요하지 않습니다. 성능 차이는 큰 파일로 작업 할 때 중요합니다.

2

구문 분석 이론의 일반 개념을 사례에 적용해야합니다.

주 파싱 기술의 복잡성에 대한 설명은 in this article입니다.

Java와 관련하여 here은 Java, Sun, Oracle 및 Apache의 XML 파서를 비교 한 것입니다.

기사의 추상에서 읽기 :

그는 XML 파서의 세계는 동적입니다. 표준이 변경되면 파서도 변경됩니다. XML 파서는 이 더욱 정교 해졌습니다. 대부분 프로그래밍 프로젝트의 경우 파서는 최소 이고 DOM 수준 2, SAX 2, XSLT 및 네임 스페이스를 지원해야합니다. 여기에서 설명한 파서는 모두 기능을 제공합니다. 그러나 의 성능 차이, 안정성 및 표준 준수가 있습니다. 이 기사에서는 을 Sun의 최신 파서, Oracle 및 Apache Software Foundation과 비교합니다.

나머지 분석은 here입니다.

3

XML 문자열의 구문 분석 결과로 DOM 트리를 작성할 수 있습니다. 다음은 원하는 것을 수행하는 Java 메소드입니다.

private static Document ParseXMLString(String xmlString) { 
    try { 
     DocumentBuilderFactory fac = DocumentBuilderFactory.newInstance(); 
     DocumentBuilder db = fac.newDocumentBuilder(); 
     InputSource inStream = new InputSource(); 
     inStream.setCharacterStream(new StringReader(xmlString)); 
     Document doc = db.parse(inStream); 
     return doc; 
    } 
    catch (Exception e) { 
     System.out.println(e); 
    } 
} 
관련 문제