From: Steve on 21 Jan 2010 12:01 I'm having the same problem. Did anyone 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(); On Thursday, January 21, 2010 11:59 AM Steve Eckhart wrote: WriteFullEndElement Doesn't Write Closing Tag I'm having the same problem. Did you ever find a solution? Submitted via EggHeadCafe - Software Developer Portal of Choice Office 2007 Beta now Available http://www.eggheadcafe.com/tutorials/aspnet/f8b0012b-b03e-4faa-9e3e-d34dfe6d0471/office-2007-beta-now-avai.aspx
|
Pages: 1 Prev: WriteFullEndElement Doesn't Write Closing Tag Next: Decode function in vb.net |