2016-02-18 2 views
0

Я пытаюсь создать динамический xelement.Создание объекта XElement

Я хочу, чтобы выход в XElement как:

<text> text1 </text> 
<text> text2 </text> 

Итак, я написал код, как:

 string[] arr = new string[2]; 
     arr[0] = "text1"; 
     arr[1] = "text2"; 

     XElement xElement1; 
     XElement xElement12 = new XElement(string.Empty); 
     for (int i=0;i<arr.Length;i++) 
     { 
      xElement1 = new XElement("text"); 
      xElement1.Add(arr[i].ToString()); 
      xElement12.Add(xElement1); 
     } 

Но, с этим кодом, я получаю выход как:

<text> 
    <text> text1 </text> 
    <text> text2 </text> 
</text> 

Может кто-нибудь, пожалуйста, дайте мне знать. Мне нужны эти данные в Xelement, и в массиве может быть n количество данных.

+2

Один «XElement» отображает один элемент XML. Похоже, вы хотите «Список ». Кроме того, имейте в виду, что действительный XML-документ имеет [только один корневой элемент] (https://en.wikipedia.org/wiki/Root_element). – dbc

ответ

0

Выполнение этого, как это, более чистое и удобное для чтения. Строки могут быть заменены динамически

  XElement root = new XElement("root", new XElement[] { 
       new XElement("text", "text1"), 
       new XElement("text", "text2") 
      }); 
+0

Я не знаю, сколько элементов массива я получаю. Я делаю эту динамику. Поэтому я не знаю, есть ли у меня text1, text2 или text3 или все. –

+0

Ваше решение вы вызываете конструктор XElement, а затем добавляете тэг и значение. это можно сделать за один шаг, как в моем коде. – jdweng