윈폼 컨트롤에 XML문서를 읽어와 구조화 시키는 작업을
앞에서도 했고 이 정리도 그 연속이라 보면 되겠다.
이번엔 트리뷰이다.
예제에 쓰일 '일기장.xml'
이 XML문서를 이렇게 트리뷰에 적용 시킬것이다.
코딩
private void btnxml파일선택_Click(object sender, EventArgs e) { if (this.openFileDialog1.ShowDialog() == DialogResult.OK) { //열기 대화상자의 경로 설정 this.pathUri = this.openFileDialog1.FileName; // 초기화 작업 Initialize(); XmlReader reader; try { reader = this.CreateXmlReader(); if (this.checkBox1.Checked) { MessageBox.Show("Validation Document"); } if (reader.NodeType == XmlNodeType.XmlDeclaration) { this.label1.Text=
string.Format( "{0} {1}",reader.Name,reader.Value); } //booklist 엘리먼트 while (reader.Read())//시작 엘리먼트가 나올때까지 { if (reader.IsStartElement()) break; } MessageBox.Show(reader.Name); if (reader.NodeType == XmlNodeType.Element) { TreeNode topNode = new TreeNode(reader.Name); this.treeView1.Nodes.Add(topNode); // booklist Nextnode(reader, topNode); this.treeView1.ExpandAll(); } } catch (Exception ex) { } finally { } } |
|
public void Nextnode(XmlReader reader, TreeNode pNode) { while (reader.Read()) { switch (reader.NodeType) { case XmlNodeType.Element: string id = ""; if (reader.HasAttributes) { id = reader.GetAttribute("id"); } TreeNode cNode = new TreeNode(reader.Name + "(" + id + ")"); pNode.Nodes.Add(cNode); Nextnode(reader, cNode); break; case XmlNodeType.EndElement: Nextnode(reader, pNode.Parent); break; case XmlNodeType.Text: cNode = new TreeNode(reader.Value); pNode.Nodes.Add(cNode); Nextnode(reader, pNode); break; } } } |
|