Я хочу вывести XmlDocument, чтобы атрибуты также имели отступ.
Я попробовал два подхода:
var cfgXmlDoc = new XmlDocument();
cfgXmlDoc.PreserveWhitespace = true;
cfgXmlDoc.Load(cfgFilePath);
...
File.WriteAllText(cfgFilePath, cfgXmlDoc.OuterXml);
И
var cfgXmlDoc = new XmlDocument();
cfgXmlDoc.Load(cfgFilePath);
...
using (var xmlWriter = new XmlTextWriter(cfgFilePath, Encoding.UTF8))
{
xmlWriter.Formatting = Formatting.Indented;
cfgXmlDoc.WriteTo(xmlWriter);
}
Как и следовало ожидать, никто не отступает от атрибутов. Кто-нибудь знает, как это сделать?
Спасибо.
EDIT1
Например, рассмотрим этот фрагмент XML:
<dataPortalProxies thisEndpointKind="Agent">
<dataPortalProxy isEnabled="true" name="NC Server" endpointKind="Server"
implementation="Shunra.Common.Csla.WcfOneWayProxy, Shunra.Common">
<add key="AddressTemplate" value="net.msmq://{0}/private/nc_queue"/>
</dataPortalProxy>
<dataPortalProxy isEnabled="true" name="Peer Agent" endpointKind="Agent"
implementation="Shunra.Common.Csla.WcfDynamicProxy, Shunra.Common">
<add key="AddressTemplate" value="https://{0}:7000/NCAgent/WcfPortal.svc"/>
</dataPortalProxy>
</dataPortalProxies>
Пропуск через XmlDocument дает следующий результат:
<dataPortalProxies thisEndpointKind="Agent">
<dataPortalProxy isEnabled="true" name="NC Server" endpointKind="Server" implementation="Shunra.Common.Csla.WcfOneWayProxy, Shunra.Common">
<add key="AddressTemplate" value="net.msmq://{0}/private/nc_queue" />
</dataPortalProxy>
<dataPortalProxy isEnabled="true" name="Peer Agent" endpointKind="Agent" implementation="Shunra.Common.Csla.WcfDynamicProxy, Shunra.Common">
<add key="AddressTemplate" value="https://{0}:7000/NCAgent/WcfPortal.svc" />
</dataPortalProxy>
</dataPortalProxies>
То, что я хочу, это какой-то вид переноса длинных строк для атрибутов, чтобы любые атрибуты, превышающие определенную ширину строки, имели отступ на следующей строке. Короче симпатичная печать.