我被困在一个需要在两个具有不同coontrol文件的程序之间交换数据的项目。 程序A只创建一个XML文件,而程序B需要输入作为一个带有两个“列”的数组 - 但我该如何进行转换?
实施例: xml看起来像:
` <Presentation>
<Options Name="1">
<Output>MyOutPut</Output>
<Slides Name="1">
<Template>Template2</Template>
<Diagram Name="Name4">
<More Elements...>
</Diagram>
</Slides>
</Options>
</Presentation>`
输出应该是这样的:
`
Presentation ""
Options 1
Output Myoutput
Slides 1
Template Template2
...
`
但我怎样才能做到这一点?我使用的是vb.net和LINQ,不知道如何解决这个问题。我尝试了一些LINQ查询,但我只获得了单独的节点或属性,所以我认为尝试不同的想法会更好。 任何建议将不胜感激!
答案 0 :(得分:0)
不幸的是,我无法提供VB
代码,但我希望此C#
代码段有用。
void Main()
{
var doc = XElement.Load(@"path-to-the-file");
doc.DescendantsAndSelf()
.Select(ElementSelector).Dump();
}
private static KeyValuePair<string, string> ElementSelector(XElement e)
{
var name = e.Name.ToString();
var value = String.Empty;
if (e.Descendants().Any())
{
if (e.Attributes().Any())
{
value = e.Attributes().First().Value;
}
}
else
{
value = e.Value;
}
return new KeyValuePair<string, string>(name, value);
}