2011-02-04 4 views
1

C# 코드에서 사용할 XML 파일이 거의 없습니다.XML과 XPath, XML을 클래스로 사용

지금까지 내가 XPATH를 사용하고 XML 노드에 액세스하기위한/

질문 내가 클래스 파일 (XSD.EXE)로 XML을 변환하면 얻을 및 유지 관리의 관점에서 그것을 사용하는 것이 어떤 이점이 속성 및 코드 가독성. 내가 추가하거나 일부 노드를 제거하는 경우, 코드 내 경우 DLL이 GAC에 간다에서

을 변경해야합니다 알고 둘 경우

.

나는 당신의 의견

환호를 얻기 위해 노력하고, KARTHIK

답변

1

XSD로 XML 변환 한 후 C# 클래스에 아직 다른 파일을 잡을 수있는 용이성이의 아름다움. 많이하는 것보다 훨씬 쉽게 - 당신은 지금 당신의 XML이 포함 된 정확히 표현 객체를 가지고 있고, 당신이 개체 인스턴스에 속성으로의 속성에 액세스 할 수 있습니다,이 몇 줄의

XmlSerializer ser = new XmlSerializer(typeof(MyClass)); 
FileStream fstm = new FileStream(@"C:\mysample.xml", FileMode.Open, FileAccess.Read); 

MyClass result = ser.Deserialize(fstm) as MyClass; 

if(result != null) 
{ 
    // do whatever you want with your new class instance! 
} 

: 코드는 다음과 같을 것 복잡한 XPath 쿼리를 XML로 가져올 수있다. 또한

, 당신은 지금 XSD가 사실 덕분에, 당신은 들어오는 XML 파일을 쉽게 유효성을 확실히 실제로 정의 된 계약에 해당 할 수 있도록 할 수 있습니다 - 원인이 덜 일정 오류 검사 (코드에서 당신을 각 표현식과 실제로 일치하는 노드가 있는지 확인하기 위해 각 XPath를 확인하지 않아도됩니다.

+0

귀하의 의견에 감사드립니다. 클래스로 XML의 경우 xml을 정확히 확인할 수 있습니까? 예외 타입의 throwm? – KK99

+0

@이 코드 샘플에서는 소스 XML 파일이 XSD를 따르지 않는다는 것을 알려주는'ser.Deserialize'를 호출 할 때 예외가 발생합니다 –

관련 문제