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