【发布时间】:2016-02-19 03:48:12
【问题描述】:
我正在尝试连接两个字符串生成器,每个都包含 XML。
当我单独添加header 时,它可以正常工作.. 与details 相同,但是当我附加...并将它们保存到数据库时,它会给我一个错误..
这是错误:
{"XML 解析:第 1 行,字符 418,text/xmldecl 不在输入开头"}
public string XMLDoc(SalesForecastModel model)
{
string doc = string.Empty;
StringBuilder builder = new StringBuilder();
using (XmlWriter writer = XmlWriter.Create(builder))
{
writer.WriteStartDocument();
writer.WriteStartElement("header");
writer.WriteStartElement("SalesForecast");
writer.WriteStartElement("EntryNumber");
writer.WriteString(model.EntryNumber.ToString());
writer.WriteEndElement();
writer.WriteStartElement("EntryDate");
writer.WriteString(model.EntryDate.ToString());
writer.WriteEndElement();
writer.WriteStartElement("Year");
writer.WriteString(model.Year.ToString());
writer.WriteEndElement();
writer.WriteStartElement("Remarks");
writer.WriteString(model.Remarks.ToString());
writer.WriteEndElement();
writer.WriteStartElement("RevisionID");
writer.WriteString(model.RevisionID.ToString());
writer.WriteEndElement();
writer.WriteStartElement("Status");
writer.WriteString(model.Status.ToString());
writer.WriteEndElement();
writer.WriteStartElement("CreatedBy");
writer.WriteString(model.CreatedBy.ToString());
writer.WriteEndElement();
writer.WriteStartElement("CreatedDate");
writer.WriteString(model.CreatedDate.ToString());
writer.WriteEndElement();
writer.WriteStartElement("LastModifiedBy");
writer.WriteString(model.LastModifiedBy.ToString());
writer.WriteEndElement();
writer.WriteStartElement("LastModifiedDate");
writer.WriteString(model.LastModifiedDate.ToString());
writer.WriteEndElement();
writer.WriteEndElement();
writer.WriteEndElement();
writer.WriteEndDocument();
}
StringBuilder builder1 = new StringBuilder();
using (XmlWriter writer1 = XmlWriter.Create(builder1))
{
writer1.WriteStartDocument();
writer1.WriteStartElement("details");
foreach (SalesForecastDetailModel detail in model.Details)
{
writer1.WriteStartElement("SalesForecastDetails");
writer1.WriteStartElement("MonthID");
writer1.WriteString(detail.MonthID.ToString());
writer1.WriteEndElement();
writer1.WriteEndElement();
}
writer1.WriteEndElement();
writer1.WriteEndDocument();
}
return doc = builder.Append(builder1).ToString();
}
【问题讨论】:
-
95% 的答案是stackoverflow.com/questions/982597/…。您可以计算其余部分并发布自我回答(或重复投票)。
-
您并没有尝试连接两个 StringBuilder。您正在尝试合并两个恰好包含在 StringBuilders 中的 XML 文档。这是一个与你所问的完全不同的问题,而且我很确定以前曾在这里问过一个问题。您可以尝试搜索 combine XML content 或 insert XML nodes。
标签: c# xml stringbuilder