2014-02-06 5 views
-3

На данный момент я получил это:Как я могу прочитать массив из XML-файла?

class robot 
{ 
    Configuratie config = new Configuratie(); 
    short[,] AlleCoordinaten = new short[3, 6] 
    { 
     {1,2,3,4,5,6}, 
     {6,5,4,3,2,1}, 
     {2,3,4,5,6,7} 
    }; 
} 

Но я хочу, чтобы поместить этот массив в XML-файле, так это то, что я пробовал:

class robot 
{ 
Configuratie config = new Configuratie(); 

    short[,] AlleCoordinaten = new short[3, 6] 
    { 
     {(config.GetIntConfig("robot","position1"))}, 
     {(config.GetIntConfig("robot","position2"))}, 
     {(config.GetIntConfig("robot","position3"))} 
    }; 
} 

файл конфигурации:

class Configuratie 
    { 
     private XDocument xdoc; 

     public Configuratie() 
     { 
      xdoc = XDocument.Load("configuratie.xml"); 
     } 
    public int GetIntConfig(string desc1, string desc2) 
    { 
     int value = 0; 
     if (string.IsNullOrEmpty(desc1)) 
     { 
      value = 0; 
     } 
     if (!string.IsNullOrEmpty(desc1) && !string.IsNullOrEmpty(desc2)) 
     { 
      foreach (XElement node in xdoc.Descendants(desc1).Descendants(desc2)) 
      { 
       value = Convert.ToInt16(node.Value); 
      } 
     } 
     if (!string.IsNullOrEmpty(desc1) && string.IsNullOrEmpty(desc2)) 
     { 
      foreach (XElement node in xdoc.Descendants(desc1)) 
      { 
       value = Convert.ToInt16(node.Value); 
      } 
     } 
     return value; 
     } 
    } 

XML файл:

<robot> 
<position1>1</position1> 
<position1>2</position1> 
<position1>3</position1> 
<position1>4</position1> 
<position1>5</position1> 
<position1>6</position1> 
etc... 
<position3>7</position3> 
</robot> 

Он все еще не работает, могли бы вы, ребята, помочь мне с тем, что я сделал не так, и, может быть, приведу пример. Ошибки, которые я получил: Ошибка, которую я получаю: инициализатор массива длиной 6 ожидается. И: инициализатор поля не может ссылаться на метод или свойство нестатического поля. Я знаю, что есть более простой способ, но я хочу сделать это с конфигурационным файлом. Как я могу это сделать?

+1

Я уже ответил на этот вопрос. http://stackoverflow.com/a/21552800/3010968 –

+0

Инициализация вашего массива прикручена. Компилятор действительно говорит вам об этом. 'GetIntConfig()' возвращает 'int', который вы передаете в массив, который ожидает элемент с 6 целыми числами. Не один. Вторая ошибка заключается в том, что вы используете переменную экземпляра для настройки другой переменной экземпляра, что происходит, если компилятор перенастраивает порядок, в котором они инициализируются? Затем вы потенциально получаете доступ к переменной, которая не была установлена, поэтому это также запрещено. – DGibbs

ответ

-2

Я вижу простую опечатку здесь:

config.GetIntConfig("robot","positoin1") 

Так что вы ищете «positoin» и в полученном файле «позицию».

0

Я думал, что вы поставили (как построить XML из этих данных). Это как сделать так:

short[,] AlleCoordinaten = new short[3, 6] { {1,2,3,4,5,6}, {6,5,4,3,2,1}, {2,3,4,5,6,7} }; XElement elem = new XElement("robot"); for (int i = 0; i < AlleCoordinaten.GetUpperBound(0); i++) { for (int j = 0; j < AlleCoordinaten.GetUpperBound(1); j++) { elem.Add(new XElement(string.Format("position{0}",i +1),AlleCoordinaten.GetValue(i,j))); } }

+0

спасибо за твой соблазн, им почти сейчас: http://stackoverflow.com/questions/21552500/reading-an-array-from-an-xml-file. Остается только проблема: «Имя« AlleCoordinaten »не существует в currect content» – user3201911

Смежные вопросы