Как использовать объекты для создания XML-документа в C#
В этом примере показано, как использовать XML DOM (объектную модель документа) для создания XML-документа. Существует несколько способов создания 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, они автоматически предоставляют закрывающие элементы по мере необходимости.