2008-09-08 5 views
1

상당히 큰 xml DOM을 생성하고이를 파일 (최대 50-100MB)에 기록하는 코드가 있습니다. 기본적으로 DOM을 생성 한 다음 toString을 호출하고 ofstream을 사용하여 작성합니다. 생성 된 DOM의 스트리밍 출력을 얻어 메모리에 전체 구조를 한 번에 생성하지 않고 복사하는 방법이 있습니까? 노드를 생성 한 후에 노드를 수정하지 않고 즉시 쓸 수 있고 메모리를 즉시 확보 할 수 있습니다. 나는 xml 구조를하는 자신의 xml 클래스를 작성할 수는 있지만 ... 나는 그것이 좋은 생각이라고 생각하지 않는다. 왜냐하면 나는 도망 칠 때 뭔가를 놓칠 것이기 때문이다.C++에서 큰 XML 문서를 만들고 스트리밍하기

답변

1

나는 GenX을 XML 작성기 스트리밍, 나는 이것을 Programmer's Notepad에서 사용하며, 소스 코드에서 사용 예를 볼 수있다. 매우 빠르며 훌륭한 UTF-8 XML을 생성합니다. 메모리 사용량은 대략 일정해야합니다. 좋아

0

키워드 "C++ XML writer;"를 찾으십시오. XML 작성자는 전체 DOM을 메모리에 작성하지 않고 XML을 생성하여 파일을 작성하므로 메모리를 많이 사용할 필요가 없습니다. 플랫폼에 대해서는 언급하지 않았지만 Microsoft XmlLite에는 IXmlWriter가 있습니다.

0

유효한 XML을 생성하는 데별로 도움이되지 않습니다. 당신이 걱정하는 탈출은 사소한 것입니다.

XML의 스트리밍 작성을위한 라이브러리는 다음과 같습니다. https://code.google.com/p/xml-writer-cpp/ - 다른 목적이 없으면 교육 목적으로 유용합니다.

관련 문제