C#에서 Serialize 하여 XML읽기 #
class testClass { [XmlElement] public string type; [XmlElement] public int data; }
serialize하여 값을 채운다
//스트림으로 데이터를 읽어오자 Stream reader= new FileStream("test.xml",FileMode.Open); //직렬화 하기 위해서 타입을 알아야 한다. XmlSerializer serializer = new XmlSerializer(typeof(testClass)); //시리얼라이저가 test.xml'에 정의된 대로 instance를 만들어 준다. 이로써 이미 파싱은 끝났다. testClass instance = (testClass)serializer.Deserialize(reader);
<?xml version="1.0"?> <testClass> <type>book</type> <data>12</data> </testClass>
<DeSerialize>할 클래스 선언 자체가 xml 정의가 되므로 따로 스키마나 dtd를 정해줄 필요가 없다.
[출처] c# - XML introduce|작성자 티거
-실제 적용-
콘솔로 테스트 해보았다. 우왕ㅋ굳
냐옹이.xml 파일 내부
<?xml version="1.0" encoding="utf-8"?>
<queryxml xmlns="http://www.Nyaonge.co.kr/XMLSchema">
<query queryid="selectEmp">
<commandtext><![CDATA[Select * from emp]]></commandtext>
</query>
<query queryid="SelectEmpByEmpNo">
<commandtext><![CDATA[SELECT * from emp where empno = @empno></commandtext>
<parameters>
<param direction="Input" dbtype="VarChar" size="32">empno</param>
</parameters>
</query>
<query queryid="selectEmpLessthan10">
<commandtext><![CDATA[select * from emp where empno < 10]]></commandtext>
<parameters>
<param direction="Input" dbtype="VarChar" size="32">empno</param>
</parameters>
...
</queryxml>
[XmlRootAttribute("queryxml", Namespace = "http://www.Nyaonge.co.kr/XMLSchema")]
public class XmlObj
{
[XmlElement("query")]
public QueryXml[] queryxml;
}
public class QueryXml
{
[XmlElement("commandtext")]
public string commandtext;
[XmlElement("parameters")]
public Parameters parameters;
}
public class Parameters
{
[XmlElement("param")]
public string[] parameter;
}
class Program
{
static void Main(string[] args)
{
//스트림으로 데이터를 읽어오자
Stream reader = new FileStream("냐옹이.xml", FileMode.Open);
//직렬화 하기 위해서 타입을 알아야 한다.
XmlSerializer serializer = new XmlSerializer(typeof(XmlObj));
//시리얼라이저가 test.xml'에 정의된 대로 instance를 만들어 준다. 이로써 이미 파싱은 끝났다.
XmlObj instance = (XmlObj)serializer.Deserialize(reader);
foreach (QueryXml qx in instance.queryxml)
{
Trace.WriteLine(qx.commandtext);
Trace.WriteLine(qx.parameters);
}
Console.ReadLine();
}
}
'프로그래밍' 카테고리의 다른 글
MSACCESS MDB 저장프로시저 사용하기 (4) | 2011.04.25 |
---|---|
INSERT INTO 문의 구문 오류입니다 (0) | 2011.04.25 |
인덱스의 이해 및 사용법(넌클러스터드 인덱스, 클러스터드 인덱스, 클러스터드 인덱스 + 넌클러스터드 인덱스) (0) | 2011.04.21 |
ASP.net 디자인 템플릿 - Start Kit Templet (1) | 2011.04.15 |
Asp.net을 위한 IIS7 초기 설정하기 (Win7) (0) | 2011.04.01 |
댓글