2014-09-15 4 views
0

В настоящее время я использую метод DataSet.WriteXml, чтобы полагаться на твердость классов C# для записи файлов.Написание какого-то неиспользуемого XML

Моя проблема заключается в том, что я хотел бы написать менее избыточную информацию. По умолчанию XML-узлы записываются как в следующем:

<parameter>VALUE</parameter> 

Но я бы предпочел, чтобы написать:

<parameter="VALUE" /> 

До сих пор, используя MappingType.Attribute я только смог отформатировать вывод как это:

<Table1 parameter="VALUE" /> 

Но у вас есть какой-либо трюк, чтобы избавиться от «Таблицы1», здесь?

EDIT: Или у вас есть другой класс, чтобы рекомендовать меня для этого? Я имею в виду, записывая свой набор ключей/значений в соответствующий файл ...

+3

'<параметр = "VALUE"/>' не является действительным XML, так что это не вариант, который вам нужен. –

+0

Что вы подразумеваете под избыточным здесь..coz <параметр = "VALUE" /> не может быть проанализирован как узел XML –

+0

@DarkKnight - я думаю, что «избыточным» OP означает повторение «параметра» в ' VALUE'. – Corak

ответ

1

Итак, во избежание избыточных данных я переключился с XML на JSON, как предложил мне Корак. Я закончил с этим рабочим кодом:

private Dictionary<String, String> settingsConfig = new Dictionary<string,string>(); 

    private const string JSON_SEPARATOR = "\",\""; 
    private const string JSON_SEPARATOR_WITH_NEWLINE = "\",\r\n\""; 

    private void readConfig() 
    { 
     if (File.Exists(defaultFilePath)) 
     { 
      JavaScriptSerializer reader = new JavaScriptSerializer(); 
      string fileContents = File.ReadAllText(defaultFilePath); 
      fileContents = fileContents.Replace(JSON_SEPARATOR_WITH_NEWLINE, JSON_SEPARATOR); 
      settingsConfig = reader.Deserialize<Dictionary<String, String>>(fileContents); 
     } 
    } 

    public void saveConfig() 
    { 
     JavaScriptSerializer writer = new JavaScriptSerializer(); 
     string textToSave = writer.Serialize(settingsConfig); 
     textToSave = textToSave.Replace(JSON_SEPARATOR, JSON_SEPARATOR_WITH_NEWLINE); 
     File.WriteAllText(defaultFilePath, textToSave); 
    } 

И написал файл выглядит следующим образом:

{"parameter0":"VALUE0", 
"parameter1":"VALUE1"} 

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

  • Нет связанных вопросов^_^