Beispiel #1
0
    private static void WriteItems(FileStream fs, CompileXml compileXml, XmlNode rootNode)
    {
        var itemsNode = rootNode.SelectSingleNode("Items");

        foreach (var itemNode in itemsNode)
        {
            var itemElement = (XmlElement)itemNode;
            var dataNodes   = itemElement.ChildNodes;
            compileXml.writeItemCount(fs, (short)dataNodes.Count);

            foreach (var dataNode in dataNodes)
            {
                var dataElement = (XmlElement)dataNode;
                var name        = dataElement.Name;
                var _index      = name.IndexOf('_');
                if (_index > -1)
                {
                    name = name.Substring(0, _index);
                }

                var fieldType = compileXml.m_FieldTypeList[compileXml.m_FieldNameBufferToIndexMap[name]];
                var bytes     = compileXml.ParseTypeMap[fieldType]((short)compileXml.m_FieldNameBufferToIndexMap[name],
                                                                   dataElement.InnerText);
                fs.Write(bytes, 0, bytes.Length);
            }
        }
    }