Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用Linq在c中的XML元素/节点中添加XElement_C#_Xml_Linq_Linq To Xml - Fatal编程技术网

C# 使用Linq在c中的XML元素/节点中添加XElement

C# 使用Linq在c中的XML元素/节点中添加XElement,c#,xml,linq,linq-to-xml,C#,Xml,Linq,Linq To Xml,我想用这种格式创建一些xml <root> <columns> <column name="name1" value="value1" /> <column name="name2" value="value2" /> <column name="name3" value="value3" /> ... </columns> <rows> <row name="name1" val

我想用这种格式创建一些xml

<root>
 <columns>
  <column name="name1" value="value1" />
  <column name="name2" value="value2" />
  <column name="name3" value="value3" />
  ...
 </columns>
 <rows>
  <row name="name1" value="value1" />
  <row name="name2" value="value2" />
  <row name="name3" value="value3" />
  ...
 </rows>
</root>
结果是

<root>
 <columns>
  <column>
   <column>
    <column> 
     ...
    </column>
   </column>
  </columns>
 ...
</root>
如何关闭节点子节点或其他对象以获得所需内容???

以下代码:

List<KeyValuePair<string, string>> columns = new Dictionary<string,string> {
   {"name1", "value1"},
   {"name2", "value2"},
   {"name3", "value3"}
}.ToList();

XElement tree =
    new XElement("root",
        new XElement("columns",
            from c in columns
            select new XElement("column",
                new XAttribute("name", c.Key),
                new XAttribute("value", c.Value)
            )
        ),
        new XElement("rows",
             from r in rows // same dictionary as columns 
             select new XElement("row",
                 new XAttribute("name", r.Key),
                 new XAttribute("value", r.Value)
            )
        )
    );
生成所需的xml:

<root>
  <columns>
    <column name="name1" value="value1" />
    <column name="name2" value="value2" />
    <column name="name3" value="value3" />
  </columns>
  <rows>
    <row name="name1" value="value1" />
    <row name="name2" value="value2" />
    <row name="name3" value="value3" />
  </rows>
</root>

请提供您的完整代码。我已编辑请检查。我想是的collapse@Shrivallabh,你输入了colapse,我改进了,但是,结果是预期的动词很接近。columns变量是什么?这让我感觉像这样@user1977936这应该在任何PC上以相同的方式呈现。代码中的列和行变量是什么?@lazyberezovskykeyvaluepair@user1977936更新了带有KeyValuePair列表的代码,与以前一样工作,结果相同。。。这是我以前吃过的
<root>
  <columns>
    <column name="name1" value="value1" />
    <column name="name2" value="value2" />
    <column name="name3" value="value3" />
  </columns>
  <rows>
    <row name="name1" value="value1" />
    <row name="name2" value="value2" />
    <row name="name3" value="value3" />
  </rows>
</root>
XElement tree = new XElement("root",
    new XElement("columns",
        from c in columns
        select new XElement("column", new XAttribute("name", c.Name,), new XAttribute("value", c.Value))),
    new XElement("rows",
        from r in rows
        select new XElement("row", new XAttribute("name", r.Name,), new XAttribute("value", r.Value))));