2 回答
TA贡献1827条经验 获得超8个赞
看起来您使用WriteStartElement不正确。第二个参数不是属性,而是命名空间 URI。这是一个简单的例子
XmlWriterSettings settings = new XmlWriterSettings();
settings.Indent = true;
settings.OmitXmlDeclaration = true;
XmlWriter writer = XmlWriter.Create(Console.Out, settings);
writer.WriteStartElement("ROOT");
writer.WriteStartElement("Unit");
writer.WriteAttributeString("UnitName", "Unit XYZ");
writer.WriteEndElement();
writer.WriteStartElement("Scheds");
writer.WriteAttributeString("Qty", "5");
writer.WriteAttributeString("ProdId", "214");
writer.WriteAttributeString("Comments", "Need by 1/25");
writer.WriteEndElement();
// Write the close tag for the root element.
writer.WriteEndElement();
writer.Close();
这会产生以下输出:
<ROOT>
<Unit UnitName="Unit XYZ" />
<Scheds Qty="5" ProdId="214" Comments="Need by 1/25" />
</ROOT>
因此,从您的示例来看,它将是:
foreach(PLYOrder p in t.Item2)
{
writer.WriteStartElement("Scheds");
writer.WriteAttributeString("Qty", p.Qty.ToString());
writer.WriteAttributeString("ProdId", p.Product.Id.ToString());
writer.WriteAttributeString("Comments", p.Comments);
writer.WriteEndElement();
}
TA贡献1946条经验 获得超4个赞
XML 中不能有重复的属性。
您在示例输出中没有重复的属性,您有重复的元素,这是允许的。将元素的开头写在Scheds
元素处理的开头和WriteEndElement()
结尾,你应该没问题。
- 2 回答
- 0 关注
- 76 浏览
添加回答
举报