if(reader.NodeType==XmlNodeType.XmlDeclaration)
{
richTextBox1.AppendText("<?xml version='1.0' encoding='utf-8'?>"+"\n");
}
if(reader.NodeType==XmlNodeType.Element)
{
richTextBox1.AppendText("<"+reader.Name+">");
reader.Read();
}

if(reader.NodeType==XmlNodeType.Element)
{
richTextBox1.AppendText("\n"+"<"+reader.Name+">");
reader.Read();
}


if(reader.NodeType==XmlNodeType.Element)
richTextBox1.AppendText("\n"+"<"+reader.Name+">");
else if(reader.NodeType==XmlNodeType.Text)
richTextBox1.AppendText(reader.Value);
else if(reader.NodeType==XmlNodeType.EndElement) richTextBox1.AppendText("</"+reader.Name+">"+"\n");

解决方案 »

  1.   

    是的,用你的代码,只能读出"unit",无法读出值,如"平方米","公里"之类的
      

  2.   

    XPathDocument xpath = new XPathDocument(xmlfile) ;
    XPathNavigator nav = xpath.CreateNavigator() ;
    XPathNodeIterator iterator = nav.Select("root/unit/@name") ;
    ArrayList al = new ArrayList() ;
    while(iterator.MoveNext())
    {
        al.Add(iterator.Current.Value) ;
    }
    这样你就把你想要的值存到al中的。然后用的时候你可以将值取出来。
      

  3.   

    你的xml写错了
    <?xml version="1.0"?>用下面的代码:string str = "<?xml version=\"1.0\" encoding=\"utf-8\"?><root><unit name=\"M\" type=\"长度\" value=\"1\" />";
    str += "<unit name=\"米\" type=\"长度\" value=\"1\" /></root>";
    XmlDocument doc = new XmlDocument();
    doc.LoadXml(str);
    MessageBox.Show(doc.OuterXml);
    XmlNodeList nodes = doc.DocumentElement.SelectNodes("unit");
    foreach(XmlNode node in nodes)
    {
    string strTemp = node.Attributes["name"].Value + ":" + node.Attributes["type"].Value + ":" + node.Attributes["value"].Value ;
    MessageBox.Show(strTemp);
    }