ㅋㅋ 해보니 별로 어려운게 아니다.
일단 큰것을 위해 샘플을 만들었다..
일단 C#이랑 중복되니 c# 부터 하겠다.
테스트를 위해
이런 xml을 하나 생성하고?
<?xml version="1.0" encoding="utf-16" ?>
<ArticleData xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<ename>0</ename>
<sign>33</sign>
</ArticleData>
그리고 이걸 저장할 클래스를 하나 만든다.
public class ArticleData
{
[XmlElement]
public string ename { get; set; }
[XmlElement]
public string sign { get; set; }
}
}
코드에는
using (var reader = new StreamReader(@"d:\util\test2.xml"))
{
XmlSerializer xs = new XmlSerializer(typeof(ArticleData));
var temp = (ArticleData)xs.Deserialize(reader);
}
이렇게 한다.
그렇게 되면 temp 에 데이터가 저장이 되게 된다.
정말 심플하다...
중요한건 xml에 상단에
<ArticleData xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
이렇게 되있는데
클래스 이름을 꼭 ArticleData로 해야된다는 점이다..
그래야 직렬화가 된다.
c#은 끝냈으니 이제 wp7(실버라이트) 에서 해보자
웹기반이니
var xmlWebPathUri = new Uri("http://api.finance.xaviermedia.com/api/latest.xml", UriKind.Absolute);
WebClient client = new WebClient();
client.DownloadStringCompleted += new DownloadStringCompletedEventHandler(client_DownloadStringCompleted);
client.DownloadStringAsync(xmlWebPathUri);
이런식으로 외부로부터 xml을 가져와서
void client_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
{
StringReader _stream = new StringReader(e.Result);
XmlReader _reader = XmlReader.Create(_stream);
System.Xml.Serialization.XmlSerializer xs = new System.Xml.Serialization.XmlSerializer(typeof(xavierresponse));
var temp = (xavierresponse)xs.Deserialize(_reader);
}
xavierresponse 이것이 xml 페이지 상단 이름이다 xml을 분석해서 클래스를 만들자~
'Windows Phone 7' 카테고리의 다른 글
[wp7] compact .net framework 에서는 SortDictionary를 사용할수 없다? (0) | 2010.06.08 |
---|---|
[wp7] 윈도우폰 sdk에서 md5 를 사용할수없다? (0) | 2010.06.07 |
[wp7] XmlSerializer 하위 엘리먼트 로드 하기 (0) | 2010.05.27 |
[wp7] 외부 url xml 파서 하기.. (0) | 2010.05.26 |
[wp7] textbox 선택시 keypad 바꾸기 (0) | 2010.05.19 |