使用xmltextreader对xml进行简单的读取和写入操作[2]

[入库:2005年8月18日] [更新:2007年3月24日]

本文简介:选择自 yeiliuxing 的 blog

  public void wirtexmlroot(xmlwriter writer)
  {
   writeroot(writer);
   writexml(writer);
  }
  private void writeroot(xmlwriter writer)
  {
   writer.writeprocessinginstruction("xml",this._declaration);
//   writer.writedoctype
  }
  public void writexml(xmlwriter writer)
  {
   if(this._prefix!="")
    writer.writestartelement(this._prefix+":"+tag);
   else
    writer.writestartelement(tag);
   //if(this._nametable!=null)
    
   if(attributes!=null)
   {
    foreach(object key in attributes.keys)
    {
     writer.writeattributestring(key as string,attributes[key] as string);
    }
   }
   if(value!=null)
   {
    writer.writestring(value);
   }
   else
   {
    if(elements!=null)
    {
     foreach(object item in elements)
     {
      baseserializeelement inner=(baseserializeelement)item;
      inner.writexml(writer);
     }
    }
   }
   writer.writeendelement();
  }
//
//  public system.xml.schema.xmlschema getschema()
//  {
//   // todo:  添加 anyelement.getschema 实现
//   return null;
//  }
  public void readxml(xmlreader reader)
  {
   readxml(reader,false);
  }
  private void readroot(xmlreader reader)
  {
   while(reader.read())
   {
    if(reader.eof)
     return; 
    switch(reader.nodetype)
    {
     case xmlnodetype.xmldeclaration:
      this._isroot=true;
      this._declaration=reader.value;
      break;
//     case xmlnodetype.comment:
//      addcomment(reader.value);
//      break;
     case xmlnodetype.documenttype:
      this._documenttype=reader.value;
      break;
     case xmlnodetype.element:
      return;
     default:
      break;
    }
    
   }
  }
//  public void addcomment(string comment)
//  {
//   _comments.add(comment);
//  }
  public void readxml(system.xml.xmlreader reader,bool isroot)
  {
   if(reader.nodetype==xmlnodetype.none||isroot)
   {
    readroot(reader);
   }

本文关键:使用xmltextreader对xml进行简单的读取和写入操作
  相关方案
Google
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top