3 回答

TA贡献1827条经验 获得超8个赞
您应该添加命名空间并在Descendants
调用中使用它:
XNamespace urn="urn:equipment-type"; XDocument.Load(filePath).Descendants(urn + "Param").ToList().ForEach(...
如果没有名称空间,我也无法枚举任何结果。

TA贡献1796条经验 获得超4个赞
对我来说,问题在于你编写文件的方式。尝试替换它:
StreamWriter sw = new StreamWriter(@"C:\Users\livingss\Desktop\XML - CSV\Result.csv"); sw.WriteLine(sb.ToString()); sw.Close();
接着就,随即:
var path = @"C:\Users\livingss\Desktop\XML - CSV\Result.csv"; File.WriteAllText(path, sb.ToString());

TA贡献1806条经验 获得超8个赞
就这样吧!
StringBuilder sb = new StringBuilder();
string delimiter = ",";
XmlDocument doc = new XmlDocument();
doc.Load(@"file.xml");
var paramElements = doc.GetElementsByTagName("Param");
for (int i = 0; i < paramElements.Count; i++)
{
var currentElt = paramElements.Item(i);
sb.Append(currentElt.Attributes.GetNamedItem("Name").Value);
sb.Append(delimiter);
sb.Append(currentElt.Attributes.GetNamedItem("PNum").Value);
sb.AppendLine();
}
var path = @"Result.csv";
File.WriteAllText(path, sb.ToString());
- 3 回答
- 0 关注
- 184 浏览
添加回答
举报