/// <summary> /// This removes namespaces from an XML Element (Scott) /// </summary> /// <param name="xeElement"></param> /// <returns></returns> protected string RemoveNamespaces(XmlNode xeElement) { StringWriter swOutput = new System.IO.StringWriter(); XmlTextWriter xtwWriter = new XmlTextWriter(swOutput); //xtwWriter.WriteStartDocument(); XmlNodeReader xnrReader = new XmlNodeReader(xeElement); while (xnrReader.Read()) { switch (xnrReader.NodeType) { case XmlNodeType.Element: xtwWriter.WriteStartElement(xnrReader.Name); if (xnrReader.HasAttributes) { while (xnrReader.MoveToNextAttribute()) { if (xnrReader.Name != "xmlns") { xtwWriter.WriteAttributeString(xnrReader.Name, xnrReader.Value); } } xnrReader.MoveToElement(); } if (xnrReader.IsEmptyElement) { xtwWriter.WriteEndElement(); } break; case XmlNodeType.Text: xtwWriter.WriteString(xnrReader.Value); break; case XmlNodeType.CDATA: xtwWriter.WriteCData(xnrReader.Value); break; case XmlNodeType.ProcessingInstruction: xtwWriter.WriteProcessingInstruction(xnrReader.Name, xnrReader.Value); break; case XmlNodeType.Comment: xtwWriter.WriteComment(xnrReader.Value); break; case XmlNodeType.EntityReference: xtwWriter.WriteEntityRef(xnrReader.Name); break; case XmlNodeType.EndElement: xtwWriter.WriteEndElement(); break; } } //xtwWriter.WriteEndDocument(); xtwWriter.Flush(); xtwWriter.Close(); xnrReader.Close(); string sOutput = swOutput.ToString(); return sOutput; }
public override void DeserializeShapeProps(System.Xml.XmlNodeReader r) { XmlDocument document = new XmlDocument(); r.MoveToElement(); XmlNode node = document.ReadNode(r); XmlNodeReader reader = new XmlNodeReader(node); base.DeserializeShapeProps(r); bool flag = true; bool flag1 = false; bool flag2 = false; bool flag3 = false; bool flag4 = false; bool flag5 = false; bool flag6 = false; Label_1: if (flag) { if (!reader.Read()) { return; } } else { flag = true; } switch (reader.NodeType) { case XmlNodeType.Element: if (reader.Name.Equals("Name")) { flag1 = true; } else if (reader.Name.Equals("Row")) { flag2 = true; } else if (reader.Name.Equals("Column")) { flag3 = true; } else if (reader.Name.Equals("LeftDistance")) { flag4 = true; } else if (reader.Name.Equals("TopDistance")) { flag5 = true; } else if (reader.Name.Equals("Value")) { flag6 = true; } goto Label_1; case XmlNodeType.Text: if (flag1) { this.name = reader.Value; } else if (flag2) { this.row = Convert.ToInt32(reader.Value); } else if (flag3) { this.column = Convert.ToInt32(reader.Value); } else if (flag4) { this.leftDistance = Convert.ToInt32(reader.Value); } else if (flag5) { this.topDistance = Convert.ToInt32(reader.Value); } else if (flag6) { this.value = BinarySerializer.Deserialize(reader.Value); } goto Label_1; case XmlNodeType.EndElement: if (flag1 && reader.Name.Equals("Name")) { flag1 = false; } else if (flag2 && reader.Name.Equals("Row")) { flag2 = false; } else if (flag3 && reader.Name.Equals("Column")) { flag3 = false; } else if (flag4 && reader.Name.Equals("LeftDistance")) { flag4 = false; } else if (flag5 && reader.Name.Equals("TopDistance")) { flag5 = false; } else if (flag6 && reader.Name.Equals("Value")) { flag6 = false; } goto Label_1; } }
private abstract_Element process_element( XmlNodeReader nodeReader, int current_page_count ) { string type = String.Empty; string subtype = String.Empty; // Step through all the attributes until the type is found nodeReader.MoveToFirstAttribute(); do { // Get the type attribute if ( nodeReader.Name.ToUpper().Trim() == "TYPE" ) { type = nodeReader.Value; } // Get the subtype attribute if ( nodeReader.Name.ToUpper().Trim() == "SUBTYPE" ) { subtype = nodeReader.Value; } } while (nodeReader.MoveToNextAttribute() ); // Make sure a type was specified if ( type == String.Empty ) return null; // Build the element abstract_Element newElement = Element_Factory.getElement( type, subtype ); // If thie element was null, return null if (newElement == null) return null; // Set the page number for post back reasons newElement.Template_Page = current_page_count; // Some special logic here if ((newElement.Type == Element_Type.Type) && ( newElement.Display_SubType == "form" )) { (( Type_Format_Form_Element )newElement).Set_Postback("javascript:__doPostBack('newpagebutton" + current_page_count + "','')"); } if ((newElement.Type == Element_Type.Title) && (newElement.Display_SubType == "form")) { complexMainTitleExists = true; } if ((newElement.Type == Element_Type.Note) && (newElement.Display_SubType == "complex")) { ((Note_Complex_Element)newElement).Include_Statement_Responsibility = !complexMainTitleExists; } // Now, step through all the attributes again nodeReader.MoveToFirstAttribute(); do { switch( nodeReader.Name.ToUpper().Trim() ) { case "REPEATABLE": bool repeatable; if ( Boolean.TryParse( nodeReader.Value, out repeatable )) newElement.Repeatable = repeatable; break; case "MANDATORY": bool mandatory; if (Boolean.TryParse(nodeReader.Value, out mandatory)) newElement.Mandatory = mandatory; break; case "READONLY": bool isReadOnly; if (Boolean.TryParse(nodeReader.Value, out isReadOnly)) newElement.Read_Only = isReadOnly; break; case "ACRONYM": newElement.Acronym = nodeReader.Value; break; } } while (nodeReader.MoveToNextAttribute() ); // Move back to the element, if there were attributes (should be) nodeReader.MoveToElement(); // Is there element_data? if ( !nodeReader.IsEmptyElement ) { nodeReader.Read(); if (( nodeReader.NodeType == XmlNodeType.Element ) && ( nodeReader.Name.ToLower() == "element_data" )) { // Create the new tree StringWriter sw = new StringWriter(); XmlTextWriter tw = new XmlTextWriter( sw ); tw.WriteNode( nodeReader, true ); tw.Close(); // Let the element process this inner data newElement.Read_XML( new XmlTextReader( new StringReader( sw.ToString() ))); } } // Return this built element return newElement; }
/// <summary> /// Parses an IM log file and sends the information to GDS /// </summary> /// <param name="logFile">The IM conversations log file</param> /// <param name="lastIndexed">messages older than this will not be sent to GDS</param> private void ParseAndSendMessages(string logFile, DateTime lastIndexed) { XmlDocument doc = new XmlDocument(); doc.Load(logFile); XmlNodeReader reader = new XmlNodeReader(doc); // reset user and buddy name userName = null; buddyName = null; // Moves the reader to the root element. reader.MoveToContent(); // move to the first message reader.Read(); while(reader.LocalName == "Message") { // check the date of the message - if older skip reader.MoveToAttribute("DateTime"); DateTime messageDateTime = DateTime.Parse(reader.Value); reader.MoveToElement(); // if older than the last indexing time, skip the message if (messageDateTime.CompareTo(lastIndexed) <= 0) { reader.Skip(); continue; } // get message data MSNMessageData messageData = ParseMessageData(reader.ReadOuterXml()); // send this message to GDS for indexing SendMessageData(messageData); } }