У меня странная проблема. При переборе массива и создании XML с помощью XMLWriter и StringBuilder строки просто перестают добавляться в построитель строк. Я не получаю никаких ошибок до тех пор, пока не будет вызван метод XmlDoc.LoadXml, когда я получаю эту ошибку:
Произошел неожиданный конец файла. Не закрыты следующие элементы: ID, Порт, Порты. Строка 1256, позиция 39.
Когда я шагнул по коду, циклы продолжаются и не выдают ошибок, но ничего не добавляется в построитель строк.
Есть идеи? Спасибо
public XmlElement LclExportGetPorts()
{
DAL.DALSoapClient soapy = new DAL.DALSoapClient();
DAL.DALStringString[] ports = soapy.EnumPortsWeb(false);
XmlDocument XmlDoc = new XmlDocument();
StringBuilder SB = new StringBuilder();
XmlWriterSettings XmlSettings = new XmlWriterSettings();
XmlSettings.Indent = true;
using (XmlWriter writer = XmlWriter.Create(SB, XmlSettings))
{
writer.WriteStartDocument();
writer.WriteStartElement("Ports");
foreach (var p in ports)
{
writer.WriteStartElement("Port");
writer.WriteElementString("ID", p.Key);
writer.WriteElementString("Name", p.Value);
writer.WriteEndElement();
}
writer.WriteEndElement();
writer.WriteEndDocument();
string temp = writer.ToString();
XmlDoc.LoadXml(SB.ToString());
}
XmlElement Result = XmlDoc.DocumentElement;
return Result;
}