簡體   English   中英

在C#中使用xelement創建動態xml

[英]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根元素 ,每一個ParameterParameters ,你不能這樣做,因為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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM