2011-02-16 3 views
0

XML 파일을 만들고 특정 요소를 선택적으로 추가하려고합니다. 이러한 요소를 메모리에 구축하고 XML 파일에 기록할지 여부를 선택할 수 있어야합니다. 이것이 가능한가? C# WinForms를 사용하고 있습니다. 나는 이미 메모리에서 전체 XML을 빌드 할 수있게 해주는 XmlDocument를 보았습니다. 그러나 큰 데이터에는 좋지 않으며 너무 많은 메모리를 필요로하기 때문에 이것을 원하지 않습니다.메모리에 xml 요소를 작성한 다음 파일에 저장하는 방법은 무엇입니까?

답변

1

당신이 스트림이있는 경우, 당신은 당신의 요소를 (어떤 유형 XmlElement이다) 만들고 각에 WriteTo 메서드를 호출 할 수 있습니다, 당신은 그런

XmlWriter.Create(stream); 

하여 XmlWriter를을 만들 수 stream 말 요소를 추가하고, XmlWriter.Create에 의해 생성 된 XmlWriter를 인수로 전달합니다.

+0

단일 XmlElement는 어떻게 작성합니까? XmlDocument와 연결되어 있다고 생각합니까? – user579674

+0

XmlWriter를 사용하여 xml을 만들고 일부 요소를 추가 할 수 있지만 스트림을 만들고 다른 요소에 추가 한 다음 XmlWriter의 작업에 영향을주지 않고 스트림을 XmlWriter에 쓸 수 있습니까? – user579674

2

대용량 데이터가 가장 큰 관심사 인 경우 XmlWriter이 이상적 일 수 있습니다. API는 아마도 XElement 등으로 우아하지는 않지만 가장 직접적이고 효율적인 메커니즘이며 일방향 스트림의 데이터 스트림을 위해 설계되었습니다.

그것은 쌍둥이, XmlReader을 가지고 있지만, 그 바로 얻을 더 힘들어 이다 -으로 인해 들어오는 XML을 처리하고 적절하게 아이 나무에 대한 회계의 복잡성. 이름

+0

이미 XmlWriter를 확인했지만 요소를 작성한 다음 파일에 쓰려면 어떻게해야합니까? – user579674

+0

@ user579674 - @Ken은 그 답변을 가지고 있습니다. 개인적으로 나는 * (이 시나리오에서는 원시'XmlWriter '를 사용할 것입니다.), 그의 대답은 당신의 질문에 직접적으로 대답합니다. –

+0

XmlWriter에 대한 질문이 있습니다. "사용"키워드와 함께 사용해야합니까? 또한 XML을 닫지 않으면 파일에 아무 것도 쓰지 않습니다. 버퍼링보다 파일에 직접 씁니다. 어떻게 설정합니까? – user579674

관련 문제