【发布时间】:2017-10-30 16:29:08
【问题描述】:
我正在尝试从我正在使用的 XML 构建一个 CSV 文件。 XML 的结构如下:
<dt_type>
<t_name>Commodities</t_name>
<dt_category>
<pc_name>ironore_steel</pc_name>
<dt_products>
<p_name>iron</p_name>
</dt_products>
<dt_products>
<p_name>coiled steel</p_name>
</dt_products>
</dt_category>
<dt_category>
<pc_name>rubber</pc_name>
<dt_products>
<p_name>molten rubber</p_name>
</dt_products>
<dt_products>
<p_name>pressed rubber</p_name>
</dt_products>
</dt_category>
</dt_type>
我想构建一个 CSV 文件,例如 (t_name, pc_name, p_name)
我目前的代码是这样的
XDocument xdoc = XDocument.Load(output + "xmlSgx.txt");
//query xml
var xdata = from r in xdoc.Descendants("dt_category")
select new
{
//tName = r.Element("t_name").Value,
pcName = (string)r.Element("pc_name"),
pName = (string)r.Element("dt_products").Element("p_name")
};
foreach (var r in xdata)
{
result.AppendLine(r.pcName + "," + r.pName);
}
using (StreamWriter file = new StreamWriter(output + "xmlRes.txt"))
{
file.Write(result);
}
我能够产生的最佳输出是这样的:
ironore_steel,iron
rubber,molten rubber
当我从下降时,我什至无法拉多个
我想拉的一个例子:
Commodities,ironore_steel,iron
Commodities,ironore_steel,coiled steel
Commodities,rubber,molten rubber
Commodities,rubber,pressed rubber
我们将不胜感激任何对正确方向的推动!!
【问题讨论】:
-
您希望 t_name 和 pc_name 为每个 p_name 重复吗?发布指定 xml 的示例 csv 输出
-
我编辑了我的原始帖子以包含我正在尝试构建的示例!
标签: c# xml linq linq-to-xml