由于某种原因,以下代码生成的 XML 不包含声明:
XDocument xDocument = new XDocument(new XDeclaration("1.0", "utf-8", "yes"),
new XElement("project",
new XAttribute("number", project.ProjectNumber),
new XElement("store",
new XAttribute("number", project.StoreNumber)
),
// User Element
new XElement("user",
new XAttribute("owner-id", project.OwnerID ?? 0),
new XElement("email", new XCData(project.OwnerEmail ?? "")),
new XElement("project-name", new XCData(project.ProjectName ?? ""))
),
// Nested Project Element
new XElement("nested-project",
new XAttribute("version", new Version(1, 0)),
new XElement("project",
new XAttribute("version", new Version(1, 0)),
xProjectItems = new XElement("project-items")
),
new XElement("price-per-part", project.PricePerPart),
new XElement("sheet-quantity", project.SheetQuantity),
new XElement("edge-length", project.EdgeLength),
new XElement("price", project.Price),
new XElement("status", project.Status),
xMaterialItems = new XElement("alternative-material-items"),
xProductItems = new XElement("project-product-items")
)
)
);
String strXML = xDocument.ToString();
之前已经生成过声明了,我是不是漏掉了什么显而易见的东西?
谢谢。
StringWriter
做到这一点)。微软这样做很糟糕。我没有将此 XML 保存到文件中,而是将其传递到流中。'XDocument' 和 'XElement' 之间有什么区别?我的意思是它们很相似,但应该有一些区别。如果有人不想在字符串中包含声明,那么可以使用:xMyDocument.Root.ToString();
- JordanXDocument
似乎只是一个不能包含的XElement
。 - Jordan