将以下字符串 XML 转换为列表<string[]>
Convert following String XML into List<string[]>
我有以下字符串 XML
<Abc>
<a>value1</a>
<b>value2</b>
<c />
<d />
<x>value3</x>
<y>value4</y>
<z />
</Abc>
以上XML字符串转换为List<string[]>
string[]
有节点 & 值
输出列表应该是这样的
试试这个
void Main()
{
var doc = new XmlDocument();
doc.LoadXml(str);
var result = doc.ChildNodes.OfType<XmlNode>()
.Select(n=> n.ChildNodes.OfType<XmlNode>().Select(x => $"{x.Name} - {CheckEmpty(x.InnerText)}").ToArray()).ToList();
}
private string CheckEmpty(string input)
{
return string.IsNullOrEmpty(input) ? "Empty" : input;
}
string str = @"
<Abc>
<a>value1</a>
<b>value2</b>
<c />
<d />
<x>value3</x>
<y>value4</y>
<z />
</Abc>
";
您可以使用 XDocument.Descendants()
轻松提取所有子元素的列表,并使用它们创建包含元素名称和值的字符串数组。将它包装在一个列表中,你就完成了:
var result = XDocument.Parse(xml)
.Descendants()
.Select(e => new [] { e.Name.LocalName, e.Value })
.ToList();
我有以下字符串 XML
<Abc>
<a>value1</a>
<b>value2</b>
<c />
<d />
<x>value3</x>
<y>value4</y>
<z />
</Abc>
以上XML字符串转换为List<string[]>
string[]
有节点 & 值
输出列表应该是这样的
试试这个
void Main()
{
var doc = new XmlDocument();
doc.LoadXml(str);
var result = doc.ChildNodes.OfType<XmlNode>()
.Select(n=> n.ChildNodes.OfType<XmlNode>().Select(x => $"{x.Name} - {CheckEmpty(x.InnerText)}").ToArray()).ToList();
}
private string CheckEmpty(string input)
{
return string.IsNullOrEmpty(input) ? "Empty" : input;
}
string str = @"
<Abc>
<a>value1</a>
<b>value2</b>
<c />
<d />
<x>value3</x>
<y>value4</y>
<z />
</Abc>
";
您可以使用 XDocument.Descendants()
轻松提取所有子元素的列表,并使用它们创建包含元素名称和值的字符串数组。将它包装在一个列表中,你就完成了:
var result = XDocument.Parse(xml)
.Descendants()
.Select(e => new [] { e.Name.LocalName, e.Value })
.ToList();