2010-05-11 3 views
0

같은 질문을 게시했습니다. here과 나는 또한 좋은 답변 몇 개를 가지고 있습니다. 동일한 답변을 시도하는 동안 컴파일 오류가 발생했습니다. 나중에 우리는 .NET 2.0을 사용하고 있고 기존 응용 프로그램에는 LINQ 파일에 대한 참조가 없다는 것을 알아야합니다.XML을 구문 분석하고 목록 상자에 채우기

SO에서 검색 한 후, 나는 파악하려 부분적 :

public partial class Item 
    { 
     public object CHK { get; set; } 
     public int SEL { get; set; } 
     public string VALUE { get; set; } 
    } 

구문 분석 :

 XmlDocument doc = new XmlDocument(); 
     doc.LoadXml("<LISTBOX_ST> 
      <item><CHK></CHK><SEL>00001</SEL><VALUE>val01</VALUE></item> 
      <item><CHK></CHK><SEL>00002</SEL><VALUE>val02</VALUE></item> 
      <item><CHK></CHK><SEL>00003</SEL><VALUE>val03</VALUE></item> 
      <item><CHK></CHK><SEL>00004</SEL><VALUE>val04</VALUE></item> 
      <item><CHK></CHK><SEL>00005</SEL><VALUE>val05</VALUE></item> 
        </LISTBOX_ST>");    
     List<Item> _lbList = new List<Item>(); 
     foreach (XmlNode node in doc.DocumentElement.ChildNodes) 
     { 
      string text = node.InnerText; //or loop through its children as well 
      //HOW - TO - POPULATE THE ITEM OBJECT ?????? 
     } 
     listBox1.DataSource = _lbList; 
     listBox1.DisplayMember = "VALUE"; 
     listBox1.ValueMember = "SEL"; 

어떻게 두 개의 자식 노드를 읽을 수 - SEL 및 노드의 값과 동일한를 채울 새 항목 DTO ??

답변

2

당신은 이런 식으로 그것을 할 수 :

XmlDocument doc = new XmlDocument(); 
    doc.LoadXml(@"<LISTBOX_ST> 
    <item><CHK></CHK><SEL>00001</SEL><VALUE>val01</VALUE></item> 
    <item><CHK></CHK><SEL>00002</SEL><VALUE>val02</VALUE></item> 
    <item><CHK></CHK><SEL>00003</SEL><VALUE>val03</VALUE></item> 
    <item><CHK></CHK><SEL>00004</SEL><VALUE>val04</VALUE></item> 
    <item><CHK></CHK><SEL>00005</SEL><VALUE>val05</VALUE></item> 
    </LISTBOX_ST>");    

    List<Item> _lbList = new List<Item>(); 
    foreach (XmlNode node in doc.DocumentElement.ChildNodes) 
    { 
     string chk = node.ChildNodes[0].InnerText; 
     int sel = int.Parse(node.ChildNodes[1].InnerText); 
     string value = node.ChildNodes[2].InnerText; 

     Item item = new Item(); 
     item.CHK = chk; 
     item.VALUE = value; 
     item.SEL = sel; 

     _lbList.Add(item); 
    } 
    listBox1.DataSource = _lbList; 
    listBox1.DisplayMember = "VALUE"; 
    listBox1.ValueMember = "SEL"; 
관련 문제