Как использовать объекты для создания XML-документа в C#

В этом примере показано, как использовать XML DOM (объектную модель документа) для создания XML-документа. Существует несколько способов создания XML-документа. Пример Создание форматированного XML-документа в памяти на C# показывает один из способов создания XML-документа в виде форматированной строки, которую вы можете отобразить или записать в файл.

В этом примере используется другой подход. Он использует XML DOM для создания объектов, представляющих данные. Это относительно просто, только с двумя настоящими уловами. Во-первых, элемент должен быть создан XmlDocument, который будет содержать его. Во-вторых, вы должны добавить элемент в родительский элемент (или основной XmlDocument для корневого элемента), чтобы фактически сделать его частью модели.

Когда пользователь нажимает кнопку Go, программа выполняет следующий код.

private void btnGo_Click(object sender, EventArgs e)
{
    // Создаем документ XML.
    XmlDocument xml_document = new XmlDocument();

    // Создаем корневой элемент.
    XmlElement employees_element =
        xml_document.CreateElement("Employees");
    xml_document.AppendChild(employees_element);

    // Создаем некоторые элементы Employee.
    MakeEmployee(employees_element, "Albert", "Anders", 11111);
    MakeEmployee(employees_element, "Betty", "Beach", 22222);
    MakeEmployee(employees_element, "Chuck", "Cinder", 33333);

    txtResult.Text = xml_document.OuterXml;
}

Этот код создает новый XmlDocument. Он создает корневой элемент & lt; Employees & gt; и добавляет его в XmlDocument. Обратите внимание, что XmlDocument может содержать только один прямой дочерний элемент.

Затем программа вызывает метод MakeEmployee, чтобы создать несколько элементов Employee. Когда он заканчивается, программа отображает внешний XML-документ документа (весь его XML-код) в текстовом поле.

В следующем коде показан способ MakeEmployee.

// Добавить узел Employee в документ.
private void MakeEmployee(XmlElement parent,
    String first_name, String last_name, int emp_id)
{
    // Создаем элемент Employee.
    XmlNode employee_element =
        parent.OwnerDocument.CreateElement("Employee");
    parent.AppendChild(employee_element);

    // Добавляем элементы FirstName, LastName и EmployeeId.
    XmlNode first_name_element =
        parent.OwnerDocument.CreateElement("FirstName");
    first_name_element.InnerText = first_name;
    employee_element.AppendChild(first_name_element);

    XmlNode last_name_element =
        parent.OwnerDocument.CreateElement("LastName");
    last_name_element.InnerText = last_name;
    employee_element.AppendChild(last_name_element);

    XmlNode employee_id_element =
        parent.OwnerDocument.CreateElement("EmployeeId");
    employee_id_element.InnerText = emp_id.ToString();
    employee_element.AppendChild(employee_id_element);
}

Этот код принимает родительский элемент и некоторый текст в качестве параметров. Он использует свойство родительского OwnerDocument, чтобы получить ссылку на XmlDocument, содержащую родителя, и использует метод CreateElement для создания нового Employee. Затем он создает элементы FirstName, LastName и EmployeeId. Он устанавливает значения InnerText для размещения текста внутри элементов.

Когда вы используете XmlTextWriter для создания XML-документа, вы должны явно закрыть открытые элементы соответствующим образом. Когда вы используете DOM, объекты представляют фрагменты иерархии. Когда вы конвертируете объекты модели DOM в текст XML, они автоматически предоставляют закрывающие элементы по мере необходимости.

Источник: http://csharphelper.com/blog/2014/09/use-objects-to-make-an-xml-document-in-c/

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Adblock
detector