Написать элемент xmlns с атрибутами

Я использую XmlWriter для создания файла XML. Я пытаюсь скопировать старый XML-файл и хочу создать запись, которая будет выглядеть так;

<Return xmlns="http://address/here" appName="Data Return - Collection Tool" appVer="1.1.0">

Мой код выглядит следующим образом:

        writer.WriteStartElement("Return", "http://address/here")
        writer.WriteAttributeString("appName", "Data Return - Collection Tool")
        writer.WriteAttributeString("appVer", "1.1.0")

Это создает атрибуты в неправильном порядке, т.е.

<Return appName="Data Return - Collection Tool" appVer="1.1.0" xmlns="http://address/here">

Как я могу заставить их появляться в том порядке, в котором я хочу. Любая помощь, пожалуйста.

1 ответ

Решение

XmlWriter позволяют вам писать атрибут xmlns, если вы хотите, чтобы значение было таким же, как указано в WriteStartElement:

void Main()
{
    StringWriter stringWriter = new StringWriter();
    using(XmlWriter writer = XmlWriter.Create(stringWriter))
    {
        writer.WriteStartDocument();
        writer.WriteStartElement("Return", "http://address/here");
        writer.WriteAttributeString("xmlns", "http://address/here");
        writer.WriteAttributeString("appName", "Data Return - Collection Tool");
        writer.WriteAttributeString("appVer", "1.1.0");
        writer.WriteEndElement();
        writer.WriteEndDocument();
    }

    Console.WriteLine(stringWriter.ToString());
}

Выход:

<Return xmlns="http://address/here" appName="Data Return - Collection Tool" appVer="1.1.0" />
Другие вопросы по тегам