Написать элемент 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" />