我现在有一个XML文件
<?xml version="1.0" encoding="utf-8"?>
<Template>
<Body Name="张三">
<Birthday Year="2000" Month="5" day="10" />
<Sex sex="男" />
</body>
<Body Name="李四">
<Birthday Year="2000" Month="1" day="1" />
<Sex sex="男" />
</body>
</Template>
比如我想读取张三的信息,将整个节点都读取出来,不是读他的字段或者属性,应该怎么操作?
读取出来的数据应该是:
<Body Name="张三">
<Birthday Year="2000" Month="5" day="10" />
<Sex sex="男" />
</body>

解决方案 »

  1.   

    呵呵 有3种读取方式 搂住可以模仿 MSDN
      

  2.   


                XmlDocument doc = new XmlDocument();
                doc.Load(@"文件路径");
                string content = doc.SelectSingleNode(@"Template/Body[@Name='张三']").OuterXml;通常是xpath方法,如上所示,测试成功
      

  3.   

    XmlDocument doc = new XmlDocument(@"c:\1.xml");
    XmlNodeList list = doc.DocumentElement.GetElementByTagName("Body");
    foreach (XmlNode node in list)
    {
      if(node.Attributes["Name"].Value="张三")
      {
       Console.WriteLine(node.InnerXml.ToString()); 
      }
      

  4.   

    修改下
    XmlDocument doc = new XmlDocument(@"c:\1.xml"); 
    XmlNodeList list = doc.DocumentElement.GetElementByTagName("Body"); 
    foreach (XmlNode node in list) 

      if(node.Attributes["Name"].Value="张三") 
      { 
        Console.WriteLine(node.OuterXml.ToString()); 
      } 
      

  5.   

    XmlDocument doc = new XmlDocument();
    doc.Load(url);
    XmlNodeList sectionNodeList = doc.GetElementsByTagName("body"); int m = sectionNodeList.Count;
    for (int j = 0; j < m; j++)
    {
    string str = sectionNodeList[j].OuterXml; //也可用InnerXML
    Console.WriteLine(str);
    }