String FilePath = Server.MapPath("Diary.xml");
XmlDocument doc = new XmlDocument();
doc.Load(FilePath);
XmlNodeList nodes = doc.SelectNodes("/Diary/entry[./name='YourName']");
int Count = nodes.Count;
for(int i = 0; i < Count; i++)
{
   Response.Write(nodes.Item(i).InnerText + "<br>");
}以上将获得Name=YourName的所有Entry节点以及所有子节点及内容
1.如何加一个变量给Name节点供查询?
2.nodes.Item(i).InnerText得到的所有Entry节点以及所有子节点的内容,杂乱在一起,如何再按子节点(name,weather等)读取?

解决方案 »

  1.   

    看sdk里的XmlDocument类,里面详细的例子。
      

  2.   

    here for you help.
    http://www.yesky.com/SoftChannel/72342371945218048/20030526/1703255_1.shtml
      

  3.   

    Thanks to  nice90(我爱射雕,更爱蓉儿) ,you gave a good sample.But i finished a dairy with adding,saving,deleting parts like that sample.Now my question is how to query data in XML with calendar control.How to do it?
      

  4.   

    遍历XML
    using System;
    using System.IO;
    using System.Xml;public class Sample {  private const String filename = "items.xml";  public static void Main() {
      
         XmlTextReader reader = null;     try {
           
            // Load the reader with the data file and ignore all white space nodes.         
            reader = new XmlTextReader(filename);
            reader.WhitespaceHandling = WhitespaceHandling.None;        // Parse the file and display each of the nodes.
            while (reader.Read()) {
               switch (reader.NodeType) {
                 case XmlNodeType.Element:
                   Console.Write("<{0}>", reader.Name);
                   break;
                 case XmlNodeType.Text:
                   Console.Write(reader.Value);
                   break;
                 case XmlNodeType.CDATA:
                   Console.Write("&lt;![CDATA[{0}]]&gt;", reader.Value);
                   break;
                 case XmlNodeType.ProcessingInstruction:
                   Console.Write("<?{0} {1}?>", reader.Name, reader.Value);
                   break;
                 case XmlNodeType.Comment:
                   Console.Write("<!--{0}-->", reader.Value);
                   break;
                 case XmlNodeType.XmlDeclaration:
                   Console.Write("<?xml version='1.0'?>");
                   break;
                 case XmlNodeType.Document:
                   break;
                 case XmlNodeType.DocumentType:
                   Console.Write("<!DOCTYPE {0} [{1}]", reader.Name, reader.Value);
                   break;
                 case XmlNodeType.EntityReference:
                   Console.Write(reader.Name);
                   break;
                 case XmlNodeType.EndElement:
                   Console.Write("</{0}>", reader.Name);
                   break;
               }       
            }           
         }     finally {
            if (reader!=null)
              reader.Close();
         }
      }
    } // End class