Tuesday, 14 April 2015

c# xml to string XmlNodeType.EndElement is null


XmlTextReader objreader = new XmlTextReader("c:\\a.xml");
StringBuilder strBuilXML = new StringBuilder();
while (objreader.Read())
{
if (objreader.IsStartElement())
{
if (objreader.IsEmptyElement)
{
Console.WriteLine("<{0}/>", objreader.Name);
strBuilXML.Append("<" + objreader.Name);
for (int attInd = 0; attInd < objreader.AttributeCount; attInd++)
{
objreader.MoveToAttribute(attInd);
strBuilXML.Append(" " + objreader.Name + "=");
strBuilXML.Append("\"" + objreader.Value + "\"");
}
strBuilXML.Append(">");
strBuilXML.Append("</" + objreader.Name);
strBuilXML.Append(">");
}
else
{
switch (objreader.NodeType)
{
case XmlNodeType.Element:
strBuilXML.Append("<" + objreader.Name);
for (int attInd = 0; attInd < objreader.AttributeCount; attInd++)
{
objreader.MoveToAttribute(attInd);
strBuilXML.Append(" " + objreader.Name + "=");
strBuilXML.Append("\"" + objreader.Value + "\"");
}
strBuilXML.Append(">");
break;
case XmlNodeType.Text:
string value = objreader.Value;
if (string.IsNullOrEmpty(value))
{
strBuilXML.Append("</" + objreader.Name);
strBuilXML.Append(">");
break;
}
else
strBuilXML.Append(value);
break;
case XmlNodeType.EndElement:
strBuilXML.Append("</" + objreader.Name);
strBuilXML.Append(">");
break;
}
}
}
}
objreader.Close();
Console.WriteLine(strBuilXML);
view raw gistfile1.cs hosted with ❤ by GitHub