2012-06-18 2 views
1

XML 직렬화 및 직렬화 해제를 사용하여 XML 파일을 읽고 쓰고 있습니다. 모든 것은 작동하고 있으며 내가 생성 한 단일 객체를 통해 파일의 모든 데이터에 액세스 할 수 있기 때문에 좋아합니다.직렬화를 통해 기존 XML 파일 업데이트

그러나 특정 요소를 업데이트하거나 XML 파일에서 해당 요소를 제거해야합니다. 사이트 주위의 독서에서 Xpath 또는 LINQ를 사용하여이 작업을 수행 할 수 있다고 생각하지만 여전히 위의 이유로 직렬화를 통해 작업을 수행하고 싶습니다. 가능한가? 직렬화가 이러한 종류의 논리를 수행한다는 것을 의미합니까? 아, 나는 업데이트 목적을 상실하기 때문에 내 파일을 삭제/다시 만들고 싶지 않습니다.

+3

(XPath, 직렬화, Linq 등) 어떤 방법을 사용하든 관계없이 다시 만들지 않고 XML 파일을 부분적으로 업데이트 할 수 없습니다. 그것은 데이터베이스가 아닙니다. –

답변

1

xml에서 변경하면 iffy 일 수 있습니다. 노드가 컬렉션 중 하나가 아니라면 제거 할 수 있습니다. 거의 확실하게 파손될 수 있습니다. 이 코드를 작동 시키면 코드가 매우 약해지며, 끔찍하게 어려운 버그가 생길 수 있습니다.

Deserialise it. 속성을 변경하고 다시 serialize하십시오.

또는 XML을 얻기 위해 직렬화를 사용하지 마십시오.

관련 문제