繁体   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