2015-11-06 95 views
1

我的目的是创建一个程序,该程序创建一个新的文件目标,该目标从另一个文件获取一些值。 XML文件:如何从相同的名称获取所有值xml c#

<?xml version="1.0"?> 
    <house> 
    <chairs count="3"> 
    <chairs>a</chairs> 
    <chairs>b</chairs> 
    <chairs>c</chairs> 
    </chairs> 
</house> 

我所做的:

static void Main(string[] args) 
    { 
     using (XmlReader reader = XmlReader.Create("file.xml")) 
     { 
      while (reader.Read()) 
      { 
       if (reader.IsStartElement()) 
       { 
        switch (reader.Name) 
        { 

         case "chairs": 

          if (reader.Read()) 
          { 
           string l; 
           l = reader.Value.Trim(); 
           //(*) 
          } 
          break; 
        } 
       } 
      } 
     } 

    // (**)f = l + " "; 

如果我写在*行:

Console.WriteLine(l), it will print me: 

a 
b 
c 

但如果我删除(*)和我取消注释(**),在新创建的文件中它只显示c,因为我认为它由于连接而覆盖了a和b。 可以取所有值a,b,c并在文件中写入,而不仅仅是最后一个值?

回答

0

试试这个:

static void Main(string[] args) 
{ 
    List<string> strings = new List<string>(); 
    using (XmlReader reader = XmlReader.Create("file.xml")) 
    { 
     while (reader.Read()) 
     { 
      if (reader.IsStartElement()) 
      { 
       switch (reader.Name) 
       { 

        case "chairs": 

         if (reader.Read()) 
         { 
          strings.Add(reader.Value.Trim()); 
         } 
         break; 
       } 
      } 
     } 
    } 

这样的名单strings将在它的所有节点,可以用来作为一个集合。如果你想要,你可以连接,但是初始代码中的赋值意味着你每次只覆盖这个值。

+0

谢谢。你的想法帮助了我。 – Nero

相关问题