Prev: Desktop Shortcut Not Showing Icon on Win 2000
Next: Problem with XmlTextWriter WriteFullEndElement method
From: Steve on 21 Jan 2010 12:00 I'm having the same problem. Did you ever find a solution? M1i wrote: Problem with XmlTextWriter WriteFullEndElement method 24-Nov-08 I???m having a problem with writing full end elements on elements that are supposed to be empty strings. I???m calling the WriteFullEndElement method on my elements that are supposed to be empty however it is still creating a self closing tag. My code is posted below. Thanks, Scott //build xml document XmlTextWriter xw = new XmlTextWriter(docFullName, Encoding.UTF8); xw.WriteStartDocument(); xw.WriteStartElement(app.XmlRootName); xw.WriteAttributeString("version", DateTime.Now.ToShortDateString()); //get application translations DataTable translations = ApplicationController.GetTranslations(ApplicationID); int currentLanguageID = 0; int languageID; string languageName; string languageCode; string resourceCode; string translation; bool isFirstLanguageElement = true; bool isEmpty; int counter = 0; foreach (DataRow t in translations.Rows) { languageID = (int)t["LanguageID"]; languageName = t["LanguageName"].ToString(); languageCode = t["LanguageCode"].ToString(); resourceCode = t["ResourceCode"].ToString(); translation = t["Translation"].ToString(); isEmpty = (bool)t["IsEmpty"]; if (currentLanguageID != languageID) { if (isFirstLanguageElement) { currentLanguageID = languageID; xw.WriteStartElement("language"); if (app.XmlLanguageElementIdType.ToLower() == "name") { xw.WriteAttributeString("name", languageName); } else if (app.XmlLanguageElementIdType.ToLower() == "code") { xw.WriteAttributeString("code", languageCode); } isFirstLanguageElement = false; } else { xw.WriteEndElement(); currentLanguageID = languageID; xw.WriteStartElement("language"); if (app.XmlLanguageElementIdType.ToLower() == "name") { xw.WriteAttributeString("name", languageName); } else if (app.XmlLanguageElementIdType.ToLower() == "code") { xw.WriteAttributeString("code", languageCode); } } } xw.WriteStartElement(app.XmlTranslationElementName); xw.WriteAttributeString("id", resourceCode); if (isEmpty) { xw.WriteString(""); xw.WriteFullEndElement(); } else { xw.WriteString(translation); xw.WriteEndElement(); } counter += 1; if (counter == translations.Rows.Count) xw.WriteEndElement(); } xw.WriteEndElement(); xw.Close(); Previous Posts In This Thread: On Monday, November 24, 2008 1:43 PM M1i wrote: Problem with XmlTextWriter WriteFullEndElement method I???m having a problem with writing full end elements on elements that are supposed to be empty strings. I???m calling the WriteFullEndElement method on my elements that are supposed to be empty however it is still creating a self closing tag. My code is posted below. Thanks, Scott //build xml document XmlTextWriter xw = new XmlTextWriter(docFullName, Encoding.UTF8); xw.WriteStartDocument(); xw.WriteStartElement(app.XmlRootName); xw.WriteAttributeString("version", DateTime.Now.ToShortDateString()); //get application translations DataTable translations = ApplicationController.GetTranslations(ApplicationID); int currentLanguageID = 0; int languageID; string languageName; string languageCode; string resourceCode; string translation; bool isFirstLanguageElement = true; bool isEmpty; int counter = 0; foreach (DataRow t in translations.Rows) { languageID = (int)t["LanguageID"]; languageName = t["LanguageName"].ToString(); languageCode = t["LanguageCode"].ToString(); resourceCode = t["ResourceCode"].ToString(); translation = t["Translation"].ToString(); isEmpty = (bool)t["IsEmpty"]; if (currentLanguageID != languageID) { if (isFirstLanguageElement) { currentLanguageID = languageID; xw.WriteStartElement("language"); if (app.XmlLanguageElementIdType.ToLower() == "name") { xw.WriteAttributeString("name", languageName); } else if (app.XmlLanguageElementIdType.ToLower() == "code") { xw.WriteAttributeString("code", languageCode); } isFirstLanguageElement = false; } else { xw.WriteEndElement(); currentLanguageID = languageID; xw.WriteStartElement("language"); if (app.XmlLanguageElementIdType.ToLower() == "name") { xw.WriteAttributeString("name", languageName); } else if (app.XmlLanguageElementIdType.ToLower() == "code") { xw.WriteAttributeString("code", languageCode); } } } xw.WriteStartElement(app.XmlTranslationElementName); xw.WriteAttributeString("id", resourceCode); if (isEmpty) { xw.WriteString(""); xw.WriteFullEndElement(); } else { xw.WriteString(translation); xw.WriteEndElement(); } counter += 1; if (counter == translations.Rows.Count) xw.WriteEndElement(); } xw.WriteEndElement(); xw.Close(); Submitted via EggHeadCafe - Software Developer Portal of Choice MSDE (Microsoft Data Engine) Performance http://www.eggheadcafe.com/tutorials/aspnet/b399a959-0bb8-402c-b497-8cf9b615b9c4/msde-microsoft-data-engi.aspx |