C# 使用Linq在c中的XML元素/节点中添加XElement
我想用这种格式创建一些xmlC# 使用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
<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))));