Problem with XmlTextWriter WriteFullEndElement method

M

M1iS

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();
 
S

Steve Eckhart

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
Scot

//build xml documen
XmlTextWriter xw = new XmlTextWriter(docFullName, Encoding.UTF8)

xw.WriteStartDocument()
xw.WriteStartElement(app.XmlRootName)
xw.WriteAttributeString("version", DateTime.Now.ToShortDateString())

//get application translation
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

els

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();

els

xw.WriteString(translation)
xw.WriteEndElement();


counter += 1
if (counter == translations.Rows.Count
xw.WriteEndElement()


xw.WriteEndElement()
xw.Close();

Previous Posts In This Thread:

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
Scot

//build xml documen
XmlTextWriter xw = new XmlTextWriter(docFullName, Encoding.UTF8)

xw.WriteStartDocument()
xw.WriteStartElement(app.XmlRootName)
xw.WriteAttributeString("version", DateTime.Now.ToShortDateString())

//get application translation
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
 
S

Steve Eckhart

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
Scot

//build xml documen
XmlTextWriter xw = new XmlTextWriter(docFullName, Encoding.UTF8)

xw.WriteStartDocument()
xw.WriteStartElement(app.XmlRootName)
xw.WriteAttributeString("version", DateTime.Now.ToShortDateString())

//get application translation
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

els

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();

els

xw.WriteString(translation)
xw.WriteEndElement();


counter += 1
if (counter == translations.Rows.Count
xw.WriteEndElement()


xw.WriteEndElement()
xw.Close();

Previous Posts In This Thread:

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
Scot

//build xml documen
XmlTextWriter xw = new XmlTextWriter(docFullName, Encoding.UTF8)

xw.WriteStartDocument()
xw.WriteStartElement(app.XmlRootName)
xw.WriteAttributeString("version", DateTime.Now.ToShortDateString())

//get application translation
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();

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
 
S

Steve Eckhart

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
Scot

//build xml documen
XmlTextWriter xw = new XmlTextWriter(docFullName, Encoding.UTF8)

xw.WriteStartDocument()
xw.WriteStartElement(app.XmlRootName)
xw.WriteAttributeString("version", DateTime.Now.ToShortDateString())

//get application translation
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

els

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();

els

xw.WriteString(translation)
xw.WriteEndElement();


counter += 1
if (counter == translations.Rows.Count
xw.WriteEndElement()


xw.WriteEndElement()
xw.Close();

Previous Posts In This Thread:

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
Scot

//build xml documen
XmlTextWriter xw = new XmlTextWriter(docFullName, Encoding.UTF8)

xw.WriteStartDocument()
xw.WriteStartElement(app.XmlRootName)
xw.WriteAttributeString("version", DateTime.Now.ToShortDateString())

//get application translation
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();

WriteFullEndElement Doesn't Write Closing Tag
I'm having the same problem. Did you ever find a solution?

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
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top