2010-01-15 6 views
1

C#에서 전체 xml을 저장하지 않고 이미 존재하는 xml 파일에 XElement를 추가 할 수 있습니까?전체 파일을 저장하지 않고 XML 파일에 XElement를 추가합니다. C#

그래서 나는 전체 XML을 디스크에 쓸 것이므로 이런 식으로하고 싶지는 않습니다.

XDocument document = new XDocument(); 
document.Load("filename"); 
document.Root.add(new XElement("name", "content")); 
document.save("filename"); 

미리 감사드립니다.

+0

정확히 무엇을 저장 하시겠습니까? – Welbog

+0

xml 파일에 XElement를 추가하고 싶습니다. 제이슨 윌리엄스가 다음 게시물에 썼던 것처럼 :) –

답변

2

예, 귀하의 예제보다 조금 더 낮은 레벨을 얻음으로써 만 가능합니다.

XML 파일에는 하나의 루트 요소 만있을 수 있으므로 파일에 추가하여 새 요소를 추가하면 손상된 XML 파일이 만들어집니다.

그러나 파일의 끝에서 읽을 수 있으며 루트 요소의 끝 태그 시작 위치를 파싱하여 파일 위치를 제공 할 수 있습니다. 그런 다음 파일을 쓰기 위해 FileStream으로 열고 쓰기 위치를 루트 엔드 태그의 시작으로 설정 한 다음 새 요소를 정상적으로 스트림에 쓸 수 있습니다. 그런 다음 새 루트 - 엔드 태그를 추가하기 위해 텍스트를 추가하여 "수동으로"파일을 완성해야합니다.

+0

나는 이것이 무엇을 요구 하는지를 알 수있는 유일한 방법이다. 그것을하기위한 더 간단한 (1 매직 콜)이 있지 않습니까? –

+0

전체 파일을 다시 쓰지 않으려면이 옵션을 선택하지 마십시오. (어딘가에 이런 일을 할 수있는 이상한 .net 일이있을 수 있지만 가능성은 희박합니다) –

관련 문제