示例#1
0
 //============================================================
 // <T>序列化内容到输出流内。</T>
 // <P>只处理结点类型数据。</P>
 //
 // @param output 输出流
 // @param element 元素对象
 //============================================================
 protected void InnerSerialize(IDataOutput output, FXmlElement element)
 {
     if (element.Type == EXmlElementType.Node)
     {
         output.WriteString(element.Name);
         output.WriteString(element.Text);
         if (element.HasAttribute())
         {
             output.WriteInt16((short)element.Attributes.Count);
             foreach (IStringPair pair in element.Attributes)
             {
                 output.WriteString(pair.Name);
                 output.WriteString(pair.Value);
             }
         }
         else
         {
             output.WriteInt16(0);
         }
         int nodeCount = element.ElementCount(EXmlElementType.Node);
         output.WriteInt16((short)nodeCount);
         if (nodeCount > 0)
         {
             foreach (FXmlElement child in element.Elements)
             {
                 if (child.Type == EXmlElementType.Node)
                 {
                     InnerSerialize(output, child);
                 }
             }
         }
     }
 }