【问题标题】:save LINQ to XML将 LINQ 保存到 XML
【发布时间】:2013-10-09 17:06:22
【问题描述】:

我正在尝试从 excel 表中检索所有值并存储在 XML 中。如何以 .XML 格式存储变量值?这是我的代码。我尝试使用 writeXMl,但格式不正确。我想以 .XML 格式保存 xlContent 变量中的所有内容。

var columnNames = new List<string>();
foreach (DataColumn column in dt.Columns)
{
    columnNames.Add(column.ColumnName);
}
var xlContent = new XElement("DocumentElement", from row in dt.AsEnumerable()
                        select new XElement("Assets", from columnName in columnNames
                        select new XElement(columnName.Replace(" ",""), row[columnName]))).ToString();


dt.WriteXml("C:\\Development\\MyAppln\\ExcelToXML\\Products.xml");

【问题讨论】:

标签: c# xml linq


【解决方案1】:

使用XElement.Save() 方法:

xlContent.Save("C:\\Development\\MyAppln\\ExcelToXML\\Products.xml"); 

将 xlContent 声明为 var,然后在最后使用 ToString() 使 xlContent 成为 string。如果您删除ToString(),xlContent 将正确声明为XElement,您将能够获得Save() 方法。

调用Save() 时会自动添加xml 声明。如需进一步参考检查:XElement.Save Method

现在如果您不想要默认声明,您可以将 XElement 添加到 XDocument 中,然后定义声明的属性:

    XDocument xDoc = new XDocument
        (
            new XDeclaration("1.0","Windows-1252","yes"),
            xlContent
        );
    xDoc.Save("C:\\Development\\MyAppln\\ExcelToXML\\Products.xml");

【讨论】:

  • 没有任何可用的 xlContent.save 方法。它是一个变量。
  • 即使它是一个 Var,由于您将其声明为 XElement,它将是一个 XElement 并具有其所有属性和方法。
  • 但是没有 xlContent.Save();还有其他方法吗?
  • 因为你最后有一个ToString()。删除它,然后重试。
  • 很高兴为您提供帮助...如果有帮助,请不要忘记投票或接受它作为答案。
猜你喜欢
  • 2012-03-28
  • 1970-01-01
  • 2011-10-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-13
  • 1970-01-01
相关资源
最近更新 更多