검색결과 리스트
xml에 해당되는 글 5건
- 2010.12.09 [XML] 아주아주 간단한 XML다루기중 하나.... 음..
- 2010.09.28 XML 역질렬화 할때.... ㅠ_ㅠ
- 2009.02.25 XML - DOM정리(3)
- 2009.02.25 XML - DOM정리(2)
- 2009.02.25 XML - DOM정리
데이터를 주고 받을때. 특히 네트워크 상에서는 XML을 많이 사용하죠..
받아온 XML을 입맛에 맛게 사용하기 위해서는
(입맛에 맛게라기 보단 먹을수 있게......쪽이 더 맞으려나..)
XML을 역직렬화 하는 과정이 필요합니다.
그럴때 XML을 클래스에 맵핑(? 이라고 해야 하나요? 다른말을 써야하나? ㅋ)하기 위해
클래스를
[XmlRoot(ElementName = "WVP")]
public class MainTopicListModel
{
[XmlElement(ElementName = "TopicList")]
public TopicListModel Topic { get; set; }
뭐 이런식으로 XmlAttribute 를 써서 클래스를 만드는데...
사실 헷깔리지 않게 잘만 만들면
간단하게 알아서 잘 역직렬화가 되는데
혹시라도
가끔..
이상하게 데이터가 잘 넘어오는데
이상하게
특정변수만 값이 계속 안넘어 온다면
Name을 잘 보는것도 괜찮습니다...
혹시나.. 뒤쪽에 공백이 없는지를 확인을... ㅠㅠ
뭐 이런실수. 아무도 안하겠지만
뒤쪽에 공백 하나 때문에
계속 값이 한개만 안넘어와서
혼자 2시간을 끙끙 거렸는데..
알고보니 공백....
<< 이놈의 공백.. ㅠㅠ
XMLDocument 를 이용한 검색
string path = "booklist.xml";
XmlDocument doc = new XmlDocument();
doc.Load(path);
string xPath = "//book/title[../@kind='소설']";
// SelectNodes 메서드는 검색조건에 맞는 개체를 XmlNodeList 로 반환하고
// SelectSingleNode 메서드는 검색조건에 맞는 단한개의 XmlNode 만을 반환(ID속성일 경우 쓰임)
XmlNodeList nodeList = doc.SelectNodes(xPath);
for (int i = 0; i < nodeList.Count; i++)
{
string title = nodeList[i].InnerText;
Console.WriteLine(title);
}
XPathDocument 를 이용한 검색
// [1]. XPathDocument 생성
XPathDocument xdoc = new XPathDocument("booklist.xml");
// [2]. XPathNavigator 생성 -> XML 데이터를 탐색하고 편집하기 위한 커서모델을 제공한다.
XPathNavigator xPathNavi= xdoc.CreateNavigator();
// [3]. XPathNodeIterator 생성 -> 반복기 역활
XPathNodeIterator xPathIterator = xPathNavi.Select("//booklist/book/title[../@kind='컴퓨터']");
// [4]. kind='컴퓨터' 가 없을 때 까지 돈다.
while (xPathIterator.MoveNext())
{
XPathNavigator navigatorTitle = xPathIterator.Current;
Console.WriteLine(navigatorTitle.Value);
}
XML 에서 속성 가져오는 방법..
string path = "booklist.xml";
XmlDocument doc = new XmlDocument();
doc.Load(path);
XmlElement booklist=doc.DocumentElement;
XmlElement FirstBook = (XmlElement)booklist.FirstChild;
// 1. XmlAttributeCollection 를 사용해서 속성 가져오기
XmlAttributeCollection attributes = FirstBook.Attributes;
for (int i = 0; i < attributes.Count; i++)
{
XmlAttribute attribute = (XmlAttribute)attributes[i];
Console.WriteLine(attribute.Name + ":" + attribute.Value);
}
// 2. GetAttributd() 메서드를 이용해서 속성 가져오기
string id = FirstBook.GetAttribute("id");
Console.WriteLine("id:"+id);
string kind = FirstBook.GetAttribute("kind");
Console.WriteLine("kind:"+kind);
}
XML 에서 모든엘리먼트 가져오기
string path = "booklist.xml";
XmlDocument doc = new XmlDocument();
doc.Load(path);
XmlElement booklist = doc.DocumentElement;
//// GetElementsByTagName() 으로 엘리먼트 가져오기
XmlNodeList titleNodeList = doc.GetElementsByTagName("price");
for (int i = 0; i < titleNodeList.Count; i++)
{
XmlNode titleNode = titleNodeList[i];
XmlNodeList childNodeList = titleNode.ChildNodes;
XmlNode textNode = childNodeList[0];
string value = textNode.Value;
Console.WriteLine(value);
}
XmlDocument doc = new XmlDocument();
doc.Load(filePath);
// 잘짜인 xml 이면은 반드시 한개의 엘리먼트가 있기때문에 XmlDocument 개체의 속성인 DocumentElement 로 바로 얻을 수 있다.
XmlElement booklist = doc.DocumentElement;
// 첫번쨰 자식엘리먼트의 노드들의 수를 가져온다.
XmlNodeList childs = FirstBook.ChildNodes;
// 첫번쨰 자식엘리먼트의 카운트수 만큼 노드의 이름 과 내용을 보여준다.
for (int i = 0; i < childs.Count; i++)
{
XmlElement eChild = (XmlElement)childs[i];
Console.WriteLine(eChild.Name + ":" + eChild.InnerText);
}
RECENT COMMENT