参见如下代码
//读节点1----------------------------------------------------------------
// XmlTextReader tr=new XmlTextReader("books.xml");
// while(tr.Read())
// {
// if(tr.NodeType==XmlNodeType.Text)
// listBox1.Items.Add(tr.Value);
// }
//----------------------------------------------------------------------
//读属性
FileStream fs=new FileStream("books.xml",FileMode.Open);
XmlTextReader tr=new XmlTextReader(fs);
while(tr.Read())
{
if(tr.MoveToContent()==XmlNodeType.Element)
{

for(int i=0;i<tr.AttributeCount;i++)
{
listBox1.Items.Add(tr.GetAttribute(i));
}
}

}
//读节点2----------------------------------------------------------------
private void button1_Click(object sender, System.EventArgs e)
{
FileStream fs=new FileStream("books.xml",FileMode.Open);
XmlTextReader tr=new XmlTextReader(fs);
while(!tr.EOF)
{
if(tr.MoveToContent()==XmlNodeType.Element&&tr.Name=="title")

{
//从元素中读取文本数据
//listBox1.Items.Add(tr.ReadElementString());//自动定位到下一个节点
LoadList(tr);//忽略异常

}
else
{
tr.Read();
}
}
}
private void LoadList(XmlReader reader)
{
try
{
listBox1.Items.Add(reader.ReadElementString());//自动定位到下一个节点
}
catch(XmlException er){}//ignore }
//----------------------------------------------------------------------

解决方案 »

  1.   

    可是楼上兄台的代码是要用到FORM中的BUTTON事件驱动的,而小子的不要FORM,所以就没有此类事件的驱动,也没有LISTBOX,只是单纯的后台程序而已。
      

  2.   

    我想实现的是与Java中如下代码一样的功能:
    Element element = settings.getChild("COLUMNS");
          columns = element.getChildren("COLUMN");
    请问在C#中怎么实现?
      

  3.   

    Java中的getChildTextTrim方法与C#中的那个方法相同?
      

  4.   

    你只是要找到Column的数据信息嘛
    简单
    using System.XML;XmlDocument xmlDoc = new XmlDocument("validateandtransfer.xml");
    XmlNodeList nlist = xmlDoc.DocumentElement.SelectNodes( "/SETTINGS/COLUMNS/COLUMN" );
      

  5.   

    得到节点的内容
    nlist[index].Value