简单C#Linq到Xml
我希望能够使用C#Linq将以下格式输出到Xml简单C#Linq到Xml,c#,linq-to-xml,C#,Linq To Xml,我希望能够使用C#Linq将以下格式输出到Xml <Genres> <Genre Value="Rock" /> <Genre Value="Metal" /> </Genres> 谢谢\m/\m/ public XmlElement CreateGenresXml(string[] args) { var el = new XElement("Genres"); el.Add(args.Where
<Genres>
<Genre Value="Rock" />
<Genre Value="Metal" />
</Genres>
谢谢\m/\m/
public XmlElement CreateGenresXml(string[] args)
{
var el = new XElement("Genres");
el.Add(args.Where(x => !string.IsNullOrWhiteSpace(x)).Select(arg => new XElement("Genre", new XAttribute("Value", arg))));
var doc = new XmlDocument();
using (var reader = el.CreateReader())
{
doc.Load(reader);
}
return doc.DocumentElement;
}
从:Stackoverflow借用到XmlElement的转换不提供代码编写服务。如果您有问题,请随时提问。非常欢迎。我认为LINQ不太适合这个任务,因为你有很多独立的参数。为什么不直接使用一些
if
来组合元素呢?如果你想使用Linq,那么就使用XElement
而不是XmlElement
。我知道如何通过其他方式完成任务,但想签出Linq to Xml。谢谢您!我会将签名更改为CreateGenresXml(params string[]args)
,这样您可以像这样调用它CreateGenresXml(“arg1”、“arg2”、…)
public XmlElement CreateGenresXml(string[] args)
{
var el = new XElement("Genres");
el.Add(args.Where(x => !string.IsNullOrWhiteSpace(x)).Select(arg => new XElement("Genre", new XAttribute("Value", arg))));
var doc = new XmlDocument();
using (var reader = el.CreateReader())
{
doc.Load(reader);
}
return doc.DocumentElement;
}