我正在使用 Linq to XML 创建一个 xml,这些值位于 Product 对象中。请参阅下面生成 xml 的 c# 代码片段:
new XElement(xn + "Products",
from p in products
select
new XElement(xn + "Product",
new XElement(xn + "ProductId", p.Id),
new XElement(xn + "Name", p.Name),
new XElement(xn + "Description", new XCData(p.LongDescription.StripHtml())),
new XElement(xn + "CategoryExternalId",
from c in categories
where c.Name == p.PrimaryCategory
select c.CategoryId),
new XElement(xn + "UPCs",
from s in p.SKU
select
new XElement(xn + "UPC", s.UPC))))
));
挑战在于 UPC。如果产品 SKU 数组中没有 UPC 条目,我不想创建 UPCs xml 节点。上面代码片段中的iepSKU,是一个字符串UPC字段的数组。因此,如果不存在单个 UPC 字段,即如果p.SKU.Count ==0,那么我根本不希望创建 UPC xml 节点元素。
查看类模型片段:
public class Product
{
public string Name { get; set; }
public string Description { get; set; }
public List<SKU> SKU { get; set; }
}
public class SKU
{
public string UPC { get; set; }
public string Name { get; set; }
public string Overlap { get; set; }
public string Productline { get; set; }
}