[英]Create dynamic xml using xelement in c#
如您所見,我想使用XElement
創建xml:
XDocument RejectedXmlList = new XDocument
(
new XDeclaration("1.0", "utf-8", null)
);
int RejectCounter = 0;
foreach (Parameter Myparameter in Parameters)
{
if (true)
{
XElement xelement = new XElement(Myparameter.ParameterName, CurrentData.ToString());
RejectedXmlList.Add(xelement);
}
}
如您所見,條件是否正常,應將參數添加到RejectedXmlList
但我得到此異常:
This operation would create an incorrectly structured document.
值得注意的是,第一個參數已成功添加。 只有添加第二個時,我才能獲得異常。
預期結果應如下所示:
<co>2</co>
<o2>2</o2>
....
您正在試圖創建一個XDocument
多根元素 ,每一個Parameter
的Parameters
,你不能這樣做,因為XML標准不允許它:
僅存在一個元素,稱為根元素或文檔元素,該元素的任何部分均未出現在任何其他元素的內容中。
LINQ to XML API強制執行此約束,從而引發在嘗試向文檔中添加第二個根元素時看到的異常。
而是添加一個根元素,例如<Rejectedparameters>
,然后向其中添加xelement
子元素:
// Allocate the XDocument and add an XML declaration.
XDocument RejectedXmlList = new XDocument(new XDeclaration("1.0", "utf-8", null));
// At this point RejectedXmlList.Root is still null, so add a unique root element.
RejectedXmlList.Add(new XElement("Rejectedparameters"));
// Add elements for each Parameter to the root element
foreach (Parameter Myparameter in Parameters)
{
if (true)
{
XElement xelement = new XElement(Myparameter.ParameterName, CurrentData.ToString());
RejectedXmlList.Root.Add(xelement);
}
}
樣品提琴 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.