作为字符串加载的XML文件

时间:2011-05-11 12:23:16

标签: c#

我注意到几年前我写过的一些代码,在考虑优化时,我认为这可能是一个可以改进的领域。我有以下内容:

var xml = new StringBuilder("");
foreach (var product in products)
{
xml.Append(product.AsXML());  // gives an xml string.
}
return String.Format("<products>{0}</products>", xml);

随着数据库中产品数量的增加,xml字符串可能会非常大,我想知道是否有更好的方法可以做到这一点。

JD

2 个答案:

答案 0 :(得分:1)

我会将Linq用于XML link

您可以尝试这样的事情:

    var prod = new List<string>();
    prod.Add("Apples");
    prod.Add("Oranges");
    var doc = new XElement("Product");
    foreach(String p in prod){


        doc.Add(new XElement("products", p));
    }

    Debug.WriteLine(doc.ToString());

像这样输出

<Product>
  <products>Apples</products>
  <products>Oranges</products>
</Product>

这意味着你并不喜欢Strings。

干杯

伊恩

答案 1 :(得分:1)

使用LINQ to XML表示该段代码的惯用方法看起来更像是:

var element = new XElement("products",
                  products.Select(p => XElement.Parse(p.AsXml())));

return element.ToString();

虽然它更适合您可以在内存中表示XML的情况。如果没有,我相信您最好的选择是使用XmlWriter。