을 덮어 쓰기 :나는 다음과 같은 형식의 XML 파일이 특정 XML 노드
<Alarms>
<Alarm>
<Id>1</Id>
<Severity>Warning</Severity>
<Comments></Comments>
</Alarm>
<Alarm>
<Id>2</Id>
<Severity>Error</Severity>
<Comments>Restart the machine</Comments>
</Alarm>
...
내 프로그램이 사용자에게 알람의 Comments
을 편집 할 수있는 기능을 제공하는 GUI를 가지고 있습니다. 사용자가 편집을 마치고 변경 사항을 저장하려고 할 때 수행 할 작업에 가장 적합한 솔루션을 찾으려고합니다. XML 파일은 극단적으로 크지 않습니다 (데이터베이스를 보증하지는 않지만). 단일 알람으로 변경 될 때마다 전체 내용을 덮어 쓰지 않으려는만큼 충분히 큽니다. 특정 노드 만 타겟팅하고 Comments
속성을 편집 할 필요없이 모든 것을 다시 쓸 수 있습니까?
XML 관련 솔루션을 찾고 있는데 ... 파일의 특정 줄로 이동 한 다음 해당 줄을 편집하는 것과 같은 일반적인 플랫 파일 방식을 사용하지 않으려합니다. 아마도 XML 파일에 대해 내가 관심이없는 무언가가 존재할 수도 있습니다. 현재 .NET 2 프로젝트로 작업 중이지만 곧 4.5로 업그레이드 할 예정입니다. 따라서 모든 솔루션이 나에게 적합합니다.
당신이'XmlDocument.Save()'의 내부 동작을 알고 있습니까 : 여기
는 작업 바이올린입니까? 서로 다른 작성자 (http://msdn.microsoft.com/en-us/library/system.xml.xmldocument.save(v=vs.110).aspx)를 사용하는 오버로드가 몇 가지 있습니다. 내 유스 케이스에 대해 가장 효율적이다. – valsidalv파일 경로에 문서 내용을 저장하는 문자열을 사용하는 오버로드가 필요할 수 있습니다. 이렇게하면 결국 전체 파일을 디스크에 다시 쓰게되고 실제로 큰 문제는 아닙니다. 전체 파일을 디스크에 기록하는 데 관심이 있다면 각 알람을 파일 이름에 알람 ID가있는 별도의 파일로 저장하십시오. 이 방법은 파일을 수정할 때 변경 사항을 하나의 알람에 저장하는 것입니다. –