2017-02-22 34 views
-2

Как создать файл XML с настраиваемыми тегами и заполнить его данными (строки), например. текстовые поля в C#?Создание файла XML в C#

Чтобы быть более точным, я пишу приложение в Xamarin для VS 15 (windows.forms/UWP с использованием PCL), и мне нужно сохранить данные, введенные в текстовые поля и т. Д. В файле XML.

Пример:

Типы пользователей на его имя в текстовом поле. Затем введите дату его рождения в другое текстовое поле. Файл XML, то должно выглядеть примерно так:

<userdata> 
    <name>John Doe</name> 
    <birthdate>15.05.1995</birthdate> 
</userdata> 
+4

сделать класс со свойствами и сериализации в XML https://support.microsoft.com/en-us/help/815813/how-to-serialize-an-object -to-xml-by-use-visual-c –

+1

Переводы: tag = element; custom = все элементы являются обычными; data = текстовый узел (в случае вашего примера). Однако вы можете использовать стандартный формат даты для даты рождения. По крайней мере, это будет признано датой в недвусмысленном формате. См. [Типы XML-схемы (xsi)] (https://en.wikipedia.org/wiki/XML_Schema_ (W3C) #Types). –

+3

Существует много существующих вопросов (и ответов), связанных с написанием XML с C#. Пожалуйста, сделайте некоторое исследование и сделайте ответ, чтобы решить проблему самостоятельно, прежде чем публиковать здесь. Как только вы это сделаете, если вы столкнетесь с трудностями, вы можете объяснить проблему, включите * соответствующую часть * вашего кода здесь и задайте конкретный вопрос, связанный с этим кодом, и мы можем попытаться помочь. Удачи. –

ответ

1

Вы хотите создать объект для хранения «UserData» и заполнить его значениями из ваших текстовых полей.

Затем вы будете использовать XmlSerializer для создания Xml вашего объекта.

Что-то вроде этого ...

// Create a class to store your object 
public class userdata 
{ 
    public string name; 
    public string birthdate; 
} 

// Instantiate and populate your person object 
var userData = new userdata() { name = txtName.Text, birthdate = txtBirthday.Text }; 

// Set up your xml serializer based on your person object 
using (var streamWriter = new System.IO.StreamWriter(@"c:\temp\userData.xml")) 
{ 
    var xmlSerializer = new System.Xml.Serialization.XmlSerializer(userData.GetType()); 
    xmlSerializer.Serialize(streamWriter, userData); 
} 

Я надеюсь, что это помогает!

+0

Я уверен, что StringWriter предназначался для отладки. Не сохраняйте строку в файле .xml; Сохранить непосредственно в файл, чтобы объявление charset устанавливалось в кодировку символов, которую автор использует для записи файла. –

+0

Спасибо за ответ! Я попробую! Что я не получу, если ваш код генерирует xml-файл? Если да, то где этот файл сохраняется? – RoloffM

+0

Я обновил ответ, чтобы сохранить Xml в файл. –

0

Try так:

var xd = 
    new XDocument(
     new XElement(
      "userdata", 
      new XElement("name", TextBox1.Text), 
      new XElement("birthdate", TextBox2.Text))); 

xd.Save(@"filename.xml");