C# - XmlTextReader
XmlTextReader 로 XML 읽기
- 예제 1
<?xml version="1.0" encoding="utf-8" ?>
<Config>
<log4net>
<root>
<!--로그 레벨 지정. 아래에서는 INFO 레벨 이상만 로그가 남는다-->
<level value="INFO" />
<!--어느 로그를 사용할 것인지 지정한다. 파일 로그와 날짜별 로그 사용-->
<appender-ref ref="DayRollingLogToFile" />
<!--복수 지정 가능-->
</root>
</log4net>
<UniqueNumber DBConnect="Server=172.20.60.216;Database=Mobile_LogDB;Uid=MobileUser;Pwd=+ahqk@lf!" MaxStockCount="200" MinStockCount="100" />
</Config>
- 위 xml 파일에서
태그의 값 읽기
var reader = new System.Xml.XmlTextReader(xmlFilePath);
reader.ReadToFollowing("UniqueNumber");
LogConfig.DBConnectString = reader.GetAttribute("DBConnect");
LogConfig.MaxStockCount = Convert.ToInt32(reader.GetAttribute("MaxStockCount"));
LogConfig.MinStockCount = Convert.ToInt32(reader.GetAttribute("MinStockCount"));
reader.Close();
- 예제 2
<?xml version="1.0" encoding="utf-8" ?>
<Config>
<DB>
<MongoDB>
<DBINFO DATABASE="GameInfo" COLLECTON="Version" IP="172.20.60.208" />
<DBINFO DATABASE="Account" COLLECTON="Login" IP="172.20.60.208" />
<DBINFO DATABASE="" COLLECTON="" IP="172.20.60.208" />
</MongoDB>
<REDIS>
<DBINFO IP="172.20.60.208" PORT="6379" />
<DBINFO IP="172.20.60.208" PORT="6380" />
</REDIS>
</DB>
<UniqueNumber URI="http://172.20.60.207:8732" API="CommonLogService/UniqueNumberRange" MaxStockCount="200" MinStockCount="100" />
</Config>
// <REDIS>의 <DBINFO> 읽기
var reader = new System.Xml.XmlTextReader(logFilePath);
reader.ReadToFollowing("REDIS");
while (reader.ReadToFollowing("DBINFO"))
{
var ip = reader.GetAttribute("IP");
var port = Convert.ToInt32(reader.GetAttribute("PORT"));
RedisAddress.Add(new Tuple<string, int>(ip, port));
}
이 글은 2019-02-25에 작성되었습니다.