2011-04-19 5 views
1

다른 XML 파일을 읽어야합니다. 파일을 사용자 지정 개체로 deserialize해야하는지 아니면 XDocument 개체와 Linq-to-XML을 사용하여 데이터를 읽어야하는지 궁금합니다.XML 직렬화 또는 XML 객체 읽기?

파일의 크기는 1-2kb에서 3mb +까지 다양하며 다른 개체도 복잡합니다 (일부는 특성이 있고 일부는 자식이 있고 일부는 일부, 둘 다 일부는 없음).

Linq-to-XML과 반대되는 객체를 사용하는 것이 더 쉽지만이 객체를 만드는 데는 약간의 시간이 필요합니다. Linq와 반대로 deserialize 할시기에 대한 경험이나 제안 사항이 있습니까?

도움 주셔서 감사합니다. 엄지 손가락의 더 정말 없다

C:\work>xsd test.xml 
C:\work>xsd /classes test.xsd 

규칙 :

답변

2

정말 데이터로 무엇을하고 있는지에 따라 다릅니다. XML 문서에서 제공하는 모든 정보를 사용하지 않는다면 LINQ 기반 접근법이 가장 쉽습니다. RSS 피드를 생각하고 기사 날짜 만 추적하면됩니다. 이 경우 deserialization 기술을 사용하면 실제로는 아무 것도하지 않습니다.

XML 문서에서 거의 모든 마지막 데이터를 사용하고 그 구조가 개체 모델의 데이터 구조를 반영하는 경우 확실히 deserialize하십시오. 이것은 설정 파일과 간단한 파일 형식 등 모든 일을 위해 항상하는 일입니다.

이미 존재하는 것처럼 들리며 일부 외부 소스에 의해 생성되었으며 코드에 이미 데이터의 개체 표현이 없으므로 LINQ 기반 접근 방식을 사용하는 것이 좋습니다. 또한 파일의 변형이 많아서 LINQ의 유연성이 다시 도움이 될 것입니다. 그것은 당신의 설명에 기반을 둔 야생 추측입니다.

+0

나는 당신의 요점이 특히 첫 번째 단락에 있다고 생각합니다. 감사! –

1

당신은 당신이 XML 파일을 주어진에서 해당 클래스를 생성 할 수있는 xsd.exe 도구를 사용할 수 있습니다. 개인적으로는 파일 크기가 커지지 않는 한 강력하게 형식화 된 개체로 작업하는 것을 선호합니다.이 경우 XmlReader로 전환합니다.