我有下面的類的對象:序列化類爲「無效XML文檔」中的XML結果錯誤
public class Root
{
[XmlElement]
public BOMItems[] Row { get; set; }
}
public class BOMItems
{
[XmlElement("ITEMNO")]
public string ITEMNO { get; set; }
[XmlElement("USED")]
public string USED { get; set; }
[XmlElement("PARTSOURCE")]
public string PARTSOURCE { get; set; }
[XmlElement("QTY")]
public string QTY { get; set; }
}
我想它用這種方法序列化爲XDocument
:
public XDocument TransformClassToXMLBOM(Root rt)
{
var serializer = new XmlSerializer(typeof(Root));
var sww = new StringWriter();
var settings = new XmlWriterSettings();
settings.ConformanceLevel = ConformanceLevel.Auto;
var writer = XmlWriter.Create(sww, settings);
serializer.Serialize(writer, rt);
var doc = new XDocument(
new XElement("Row",
new XElement("ITEMNO"),
new XElement("USED"),
new XElement("PARTSOURCE"),
new XElement("QTY")));
doc.Save(writer);
return doc;
}
我甚至嘗試過在new XElement("Row",
之前插入一個額外的元素:
var doc = new XDocument(
new XElement("Root",
new XElement("Row",...
我總是在這條線以下doc.Save(writer);
錯誤:
令牌StartDocument狀態EndRootElement會導致一個無效 XML文件內。如果您希望 寫入XML片段,請確保一致性級別設置爲 設置爲ConformanceLevel.Fragment或ConformanceLevel.Auto。
起初我以爲我可能會錯過一個XElement或有拼寫錯誤,但我找不到任何錯誤。我不知道如何查看writer
中的值來檢查結果,所以我不知道如何找到解決方案。
,我想的是這樣結束:
<Root>
<Row>
<ITEMNO>1</ITEMNO>
<USED>Y</USED>
<PARTSOURCE>BUY</PARTSOURCE>
<QTY>10</QTY>
</Row>
</Root>
如何找到問題的原因是什麼?什麼是實現我想要的結果的正確方法?
你想實現什麼?你能清楚地陳述你的輸出嗎? –
我想將根對象轉換爲XML字符串 – davids
請參閱我的下面的答案..是你想要的嗎? –