c#中未填充的XML变量

本文关键字:XML 变量 填充 | 更新日期: 2023-09-27 18:08:15

这是一段代码,我试图将整数列表嵌入到XML中。

function(long[] Idlist)
{
XDocument inputXML = new XDocument(
             new XElement("Ids",
                       from wp in Idlist
                        select new XElement("element")));
}

我有四个值在我的IdList[20,30,40,50],但仍然输入xml不填充任何值。

和inputXML是这样填充的:

<Ids>
  <element/>
  <element/>
  <element/>
  <element/>
</Ids>

有什么建议吗

c#中未填充的XML变量

编译器无法知道您希望wp以某种方式包含在XML中。如果你想要某事发生,你必须礼貌地要求。

XDocument inputXML = new XDocument(
    new XElement("Ids",
        from wp in Idlist
        //  XElement has another constructor which takes a second 
        //  parameter, and uses that as the content of the element.
        select new XElement("element", wp)
        ));
XML

<Ids>
  <element>20</element>
  <element>30</element>
  <element>40</element>
  <element>50</element>
</Ids>

您的查询看起来像:

from wp in Idlist
select new XElement("element")

您没有使用来自Idlist的任何数据馈送到XElement

使用了这个构造函数,它用您提供的名称创建了一个空元素。

尝试使用允许您传入XElement值和名称的正确构造函数。

在vb.net中,这是可行的

    Dim xe As XElement = <Ids></Ids>
    Dim IdList As New List(Of Integer) From {20, 30, 40, 50}
    For Each id As Integer In IdList
        Dim els As XElement = <element><%= id %></element>
        xe.Add(New XElement(els))
    Next