[Silverlght] XML파일 읽기

2009. 10. 25. 02:19WEB/Silverlight

원격지에 있는 XML파일, 그리고 xap에 포함되어 배포된 XML파일 모두 Silverlight에서 손쉽게 읽을 수 있습니다.

원격지에 있는 XML파일 읽기

접근가능한 특정 원격지에 XML파일은 WebClient를 통해 손쉽게 접근, 사용하실 수 있습니다.

public MainPage()
{
    InitializeComponent();
    WebClient wc = new WebClient();
    wc.DownloadStringCompleted += new DownloadStringCompletedEventHandler(wc_DownloadStringCompleted);
    wc.DownloadStringAsync(new Uri("http://주소/Contact.xml", UriKind.Absolute));
}

void wc_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
{
    //XElement 또는 XDocument를 이용하여 전송받은 XML String를 Parsing 한 다음 사용하시면 됩니다.
    XElement xContact = XElement.Parse(e.Result);
}

한 가지 주의사항이 있다면 해당 XML자원이 XAP파일이 포함된 폴더 밖에 있다면, ‘상호 도메인 정책 파일’ 역시 해당 서버에 올려져 있어야 한다는 점입니다. Silverlight는 기본적으로 원격지에 접근할 때에는 ‘clientaccesspolicy.xml’나 ‘crossdomain.xml’ 등의 ‘상호 도메인 정책 파일’이 있는지 검사를 합니다. 만약 ‘상호 도메인 정책 파일’이 없거나 권한이 없다면 Exception을 발생시킬 것입니다.

절대경로를 통해 원격지에 있는 WebServer에 XML파일을 요청하는 것이라 할 지라도 xap가 포함된 폴더나 그 하위에 있는 자원이라면 ‘상호 도메인 정책 파일’이 없어도 문제없이 동작합니다.

xap파일에 포함되어 배포되는 xap파일 읽기

XElement, XDocument의 Load 옵션을 통해서 간단하게 읽으시면 됩니다.

XDocument xContact = XDocument.Load("Asset/XML/Contact.xml");

참~ 쉽죠?