Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在c中使用xelement创建动态xml#_C#_Xml_Xelement - Fatal编程技术网

C# 在c中使用xelement创建动态xml#

C# 在c中使用xelement创建动态xml#,c#,xml,xelement,C#,Xml,Xelement,我想使用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(Myp

我想使用
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
中,但我得到的是此异常:

此操作将创建结构不正确的文档。
请注意,第一个参数已成功添加。只有当第二个被添加时,我才能得到异常

预期结果应如下所示:

<co>2</co>
<o2>2</o2>
....
2
2.
....

您正在尝试创建一个包含多个
XDocument
,在
参数中,每个
参数一个
,您不能这样做,因为

只有一个元素,称为根元素或文档元素,其任何部分都不会出现在任何其他元素的内容中

LINQtoXMLAPI强制执行此约束,在尝试向文档添加第二个根元素时引发异常

相反,请添加根元素,例如
,然后将
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);
    }
}

示例。

看起来像的副本-您试图创建一个包含多个的XML文档,这是XML标准不允许的。@dbc这不是我的答案。我想使用ForEach创建XML,这是同样的问题。必须将单个根元素添加到
XDocument
。然后,您可以为每个
参数
向该根元素添加多个子元素;在代码的第一行中,但它返回空引用错误。当然,您需要创建
RejectedXmlList.Root
元素。您只创建了
XDocument
,而不是它的根。