xml - 将 XML 标记转换为 CSV
问题描述
我想将一些 XML 标记转换为逗号分隔值 (CSV)
<variable name="Fault_Reset">
<type>
<BOOL />
</type>
</variable>
<variable name="Cycle_On">
<type>
<BOOL />
</type>
</variable>
我希望输出如下所示: variable name , type
例如
Fault_Reset,BOOL
Cycle_On,BOOL
请帮帮我。
解决方案
就像对这种类型的代码使用字典一样。我认为 BOOL 应该是内部文本而不是标签名称。尝试下面的代码,它适用于发布的 XML
using System.Text;
using System.Xml;
using System.Xml.Linq;
namespace ConsoleApplication132
{
class Program
{
const string FILENAME = @"c:\temp\test.xml";
static void Main(string[] args)
{
XDocument doc = XDocument.Load(FILENAME);
Dictionary<string, string> dict = doc.Descendants("variable")
.GroupBy(x => (string)x.Attribute("name"), y => (string)y.Element("type").Elements().FirstOrDefault().Name.LocalName)
.ToDictionary(x => x.Key, y => y.FirstOrDefault());
}
}
}
推荐阅读
- c# - VB6 无法使用从字节数组动态加载程序集的 C# 库
- javascript - JavaScript中的浮点数精度
- ajax - 页面加载时的无缝视频背景
- matlab - 使用 fmincon 内点算法的最优容差
- c++ - 模板类上的 C++ 继承运算符“<<”
- angular - Angular 库 - 我可以导入组件代码吗?
- spotfire - Spotfire Web 报告作为幻灯片放映?
- javascript - Shuffle.js 复合过滤器和数据组数组
- javascript - 如何自定义 sendKeys(protractor.Key.)
- python - 如何将任务添加到 django 视图内的异步循环?