奇妙な問題があります。配列をループしてXMLWriterとStringBuilderを使用してXMLを作成すると、文字列が文字列ビルダーに追加されなくなります。このエラーが発生したときに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;
}