xml文档:
<text>
  <ln>kjsdfdsklf</ln>
  <name1>1</name1>
  <name2>2</name1>
  <name3>3</name1>
  <name4>4</name1>
</text>
我想得到的是
  <name1>1</name1>
  <name2>2</name1>
  <name3>3</name1>
  <name4>4</name1>包括name1(2、3、4)以及它的值1、2、3、4请问我该怎么写呢?

解决方案 »

  1.   

    ? ??????????????????
     <name1>1 </name1> 
      <name2>2 </name1> 
      <name3>3 </name1> 
      <name4>4 </name1> 
    ----------------->
      <name1>1 </name1> 
      <name2>2 </name2> 
      <name3>3 </name3> 
      <name4>4 </name4> 
    用dataSet最简单
      

  2.   

    dataset?  能说具体点吗
      

  3.   

    我记着xpath有个contains函数
    你可以Google下
      

  4.   

    XmlNodeList list = doc.SelectNodes("//*[contains(name(),'name')]");
    这样应该可以的
      

  5.   

    精确一点应该这样
    XmlNodeList list = doc.SelectNodes("/text/*[contains(name(),'name')]");text节点下所有名字中包含name的节点
      

  6.   


    用starts-with更好吧using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Xml;namespace ConsoleApplication31
    {
        class Program
        {
            static void Main(string[] args)
            {
                XmlDocument Doc = new XmlDocument();
                Doc.LoadXml("<text>"
                    + "<ln>kjsdfdsklf </ln>"
                    + "<name1>1 </name1> "
                    + "<name2>2 </name2> "
                    + "<name3>3 </name3> "
                    + "<name4>4 </name4> "
                    + "</text> ");            XmlNodeList Nodes = Doc.SelectNodes("/text/*[starts-with(name(),'name')]");
                foreach (XmlNode Node in Nodes)
                    Console.WriteLine("name:" + Node.Name + " value:" + Node.InnerText);
                Console.Read();
            }
        }
    }
      

  7.   

    恩,对的,虽然都可以实现,starts-with更好些唉,老了,呵呵