• This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn more.

Problem with XmlTextWriter WriteFullEndElement method

M
#1
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();
 

My Computer

S

Steve Eckhart

#2
WriteFullEndElement Doesn't Write Closing Tag

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/tutorial...97-8cf9b615b9c4/msde-microsoft-data-engi.aspx
 

My Computer

S

Steve Eckhart

#3
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/tutorial...e-d34dfe6d0471/office-2007-beta-now-avai.aspx
 

My Computer

S

Steve Eckhart

#4
I'm having the same issue. 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?

On Thursday, January 21, 2010 12:01 PM
Steve Eckhart wrote:

Problem with XmlTextWriter WriteFullEndElement method
I'm having the same problem. Did anyone ever find a solution?


Submitted via EggHeadCafe - Software Developer Portal of Choice
KB905915 may break Internet Explorer
http://www.eggheadcafe.com/tutorial...2-0ca06c03016c/kb905915-may-break-intern.aspx
 

My Computer

Users Who Are Viewing This Thread (Users: 1, Guests: 0)