Я изо всех сил немного, пытаясь найти подходящий способ написания именно этот XML с XmlWriter и подстилающей строки строитель:Пользовательские отступы по умолчанию Xmlns атрибут Wile запись через XmlWriter
<x:node xmlns="uri:default"
xmlns:x="uri:special-x"
xmlns:y="uri:special-y"
y:name="MyNode"
SomeOtherAttr="ok">
</x:node>
лучшее, что я до сих пор :
static string GetXml()
{
var r = new StringBuilder();
var w = XmlWriter.Create(r, new XmlWriterSettings { OmitXmlDeclaration = true });
w.WriteStartElement("x", "node", "uri:special-x");
w.Flush();
r.Append("\n" + new string(' ', 7));
w.WriteAttributeString("xmlns", "x", null, "uri:special-x");
w.Flush();
r.Append("\n" + new string(' ', 7));
w.WriteAttributeString("xmlns", "y", null, "uri:special-y");
w.Flush();
r.Append("\n" + new string(' ', 7));
w.WriteAttributeString("name", "uri:special-y", "vd");
w.Flush();
r.Append("\n" + new string(' ', 7));
w.WriteAttributeString("SomeOtherAttr", "ok");
w.Flush();
w.WriteEndElement();
w.Flush();
return r.ToString();
}
, который создает
<x:node
xmlns:x="uri:special-x"
xmlns:y="uri:special-y"
y:name="vd"
SomeOtherAttr="ok" />
, но я не могу найти AW ay написать xmlns по умолчанию сразу после узла. Любая попытка приводит к ошибке или другому форматированию.
Любые идеи? Благодаря!
Обновление: возможно, я могу написать его непосредственно в StringBuilder, но я ищу еще ... hm .. правильный подход.
Мне нужно сравнить много файлов WPF и их конвертировать в «каноническую» форму, чтобы упростить ее и потенциально использовать результат как инструмент автоматического форматирования для файлов проекта. Для этого документы должны быть отформатированы так, как это делает VS/Resharper + некоторые «канонические» правила, такие как упорядоченные атрибуты и т. Д. –
Это имеет смысл. Обычно XML не предназначен для потребления человеком, но XAML - это особый случай! –