xml 데이터를 파싱해서 필요한 부분만 뽑아서 웹에 출력하려고 했지만,. 서버에서 뽑아지는 xml 데이터 형식이 다양해서 일일히 스타일 만들기도 귀찮고 해서 그냥 xml 전체를 html 로 만들어서 보자는 목적으로 만든 코드. html 의 집합 목록 태그이므로 Tree 형식으로 보기는 그런데로..^^
XmlDocument doc = new XmlDocument();
doc.LoadXml(System.IO.File.ReadAllText("backup.xml", Encoding.UTF8));
sb.Append("<div id=\"xmlData\">");
foreach(XmlNode xn in doc.ChildNodes) {
getChildNode(xn);
}
sb.Append("</div>");
static void getChildNode(XmlNode xn) {
if (xn.NodeType == XmlNodeType.Text | xn.NodeType == XmlNodeType.CDATA) {
sb.AppendLine(xn.Value);
string x = xn.Value;
if (x.StartsWith("<")) {
XmlDocument xd = new XmlDocument();
xd.LoadXml(x);
foreach(XmlNode xn2 in xd.ChildNodes) {
getChildNode(xn2);
}
}
} else {
sb.AppendLine(xn.Name);
if (xn.Attributes != null) {
if (xn.Attributes.Count > 0) {
sb.AppendLine("<ul>");
foreach(XmlAttribute xa in xn.Attributes) {
sb.AppendLine("<li>" + xa.Name + " : " + xa.Value + "</li>");
}
sb.AppendLine("</ul>");
}
}
}
// 하위노드 재귀
sb.AppendLine("<ul>");
foreach(XmlNode child in xn.ChildNodes) {
sb.AppendLine("<li>");
getChildNode(child);
sb.AppendLine("</li>");
}
sb.AppendLine("</ul>");
}
댓글 없음:
댓글 쓰기