문제

문제

컴퓨터에서 로컬로 매우 큰 XML 파일을 열 때 해당 파일이 열리는 데 나이가 걸릴 것이라는 것은 거의 확실합니다. 응답하지 않는다고 생각하기 때문에 컴퓨터가 잠금을 의미 할 수 있습니다.

사용하는 복잡한 데이터베이스 또는 시스템의 사용자 XML 백업에 서비스를 제공하는 경우 문제가됩니다. 사용하는 것은 물론 대규모 백업을 열 수있는 것과 비슷한 점이 슬림합니다.

페이지 매김이 가능합니까?

XSLT를 사용하여 사용자에게 읽을 수있는 백업을 표시합니다. 같은 방식으로, 전체 파일이 한 번에 읽히는 것을 방지하기 위해 데이터의 시간에 페이지 만 가져올 수 있으므로 위의 문제가 발생할 수 있습니다.

나는 대답이 단순히 아니오라고 생각하지만 다른 사람이 같은 문제를보고 해결했는지 알고 싶습니다.

메모: 이것은 로컬 컴퓨터에만 있으므로 인터넷 연결이 필요하지 않아야합니다. JavaScript는 상황이 더 쉬워지면 사용할 수 있습니다.

도움이 되었습니까?

해결책

XSLT를 사용한 페이지 매김이 가능하지만 원하는 결과로 이어지지 않을 것입니다. XSLT가 작동하려면 전체 XML 문서를 DOM 트리로 구문 분석해야합니다.

당신이 할 수있는 것은 스트리밍 변환을 실험하는 것입니다. http://stx.sourceforge.net/

또는 XSLT로 처리하기 전에 큰 XML 파일을 전제로 처리하여 더 작은 비트로 잘라낼 수 있습니다. 이를 위해 나는 명령 줄 도구와 같은 명령 줄 도구를 사용합니다 xmlstarlet

다른 팁

바로 아주 좋은 질문!

내가 알고있는 XSLT 구현 DOM이 필요하므로 전체 문서에 액세스해야합니다 (아마도 게으른 방식으로 수행 할 수는 있지만)

어쨌든 VTD-XML을 살펴 봐야합니다. http://vtd-xml.sourceforge.net/

최신 Saxon XSLT 프로세서는 "스트리밍 XSLT"에 대한 초보적 지원을 지원합니다. 여기에 대해 읽으십시오. http://www.saxonica.com/documentation/index/intro.html

즉, 데이터베이스 백업은 아마도 XML에 적합한 사용 사례가 아닐 것입니다. XML 데이터베이스 백업을 처리 해야하는 경우 가능한 한 빨리 버려야합니다. 로그와 동일합니다 - 선형 프로세스는 단순히 물건을 추가하여 작동해야합니다. 내 말은, XML보다 훨씬 나을 것이라는 것은 숲을 최상위 구조로 허용 할 것이지만, 결코 일어나지 않을 것이라고 생각합니다.

XMLMAX Virtual XML 편집기는 빠른 PC에서 약 30 초 안에 TreeView에서 1 기가 바이트 XML 파일을 읽고, 구문 분석하고, 표시합니다. Windows OS 전용. 모든 크기 또는 구조의 XML과 함께 작동합니다.

안녕하세요, 어떤 프로그래밍 언어를 사용하고 있는지 모르겠지만 xmlreader를 사용하는 C#에서는 전체 파일이 아닌 태그로 파일 태그를 읽을 수 있습니다. 이 방법으로 첫 페이지 만 읽고 읽기를 중지 할 수 있습니다. 안부 인사, 이르단

이 문제를 완화하는 한 가지 방법은 큰 XML 파일을 여러 개의 작은 XML 문서로 분할하는 것입니다. 데이터 유형에 따라 파일을 분할하거나 파티션 할 수 있습니다 (예 : 일, 거래, 엔티티 등)

이것은 물론 여러 가지 다른 도전을 소개 할 것입니다. 예를 들어 데이터를 전체 또는 파티션에서 볼 필요가있는 경우 전문 파서를 생각해 내야합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top