override protected void endTag(string tag)
        {
            if (elementStack.Count != 0)
            {
                if (tag.CompareTo("ReportItem") == 0 &&
                    elementStack.Peek().CompareTo("ReportItem") == 0)
                {
                    elementStack.Pop();

                    NessusDataEntry entry = null;
                    entry = new NessusDataEntry(tempPluginName,
                                                tempIpList,
                                                tempDescription,
                                                tempImpact,
                                                tempSeverity,
                                                tempRiskFactor,
                                                tempRecommendation,
                                                tempCveList,
                                                tempBidList,
                                                tempOsvdbList);

                    if (entry.isValid())
                    {
                        tempRecord.nessusAddEntry(int.Parse(tempPluginId), tempIpList, entry);
                    }
                }
                else if (tag.CompareTo("cve") == 0 &&
                         elementStack.Peek().CompareTo("cve") == 0)
                {
                    elementStack.Pop();
                    tempCveList.Add(tempCve);
                }
                else if (tag.CompareTo("bid") == 0 &&
                         elementStack.Peek().CompareTo("bid") == 0)
                {
                    elementStack.Pop();
                    tempBidList.Add(tempBid);
                }
                else if (tag.CompareTo("osvdb") == 0 &&
                         elementStack.Peek().CompareTo("osvdb") == 0)
                {
                    elementStack.Pop();
                    tempOsvdbList.Add(tempOsvdb);
                }
                else if (elementStack.Peek().CompareTo(tag) == 0)
                {
                    elementStack.Pop();
                }
            }
        }
        /// <summary>
        /// This is the endTag method.
        /// It is used to handle the end tag from the XML file.
        /// </summary>
        /// <param name="tag">xml end tag name</param>
        override protected void endTag(string tag)
        {
            if (elementStack.Count != 0)
            {
                if (tag.CompareTo("ReportItem") == 0 &&
                    elementStack.Peek().CompareTo("ReportItem") == 0)
                {
                    elementStack.Pop();

                    // check whether is MS id

                    if (tempPluginName.Length >= 2 && tempPluginName.Substring(0, 2).Contains("MS"))
                    {
                        if (tempPluginName.IndexOf(':') != -1)
                        {
                            this.tempMicrosoftID = tempPluginName.Substring(0, tempPluginName.IndexOf(':'));
                        }
                        else
                        {
                            this.tempMicrosoftID = "";
                        }
                    }
                    NessusDataEntry entry = null;
                    entry = new NessusDataEntry(tempPluginName,
                                                tempIpList,
                                                tempDescription,
                                                tempImpact,
                                                tempSeverity,
                                                tempRiskFactor,
                                                tempRecommendation,
                                                tempCveList,
                                                tempBidList,
                                                tempOsvdbList,
                                                tempFileName,
                                                tempPort,
                                                tempProtocol,
                                                tempSvc_name,
                                                tempPluginFamily,
                                                tempPlugin_publication_date,
                                                tempPlugin_modification_date,
                                                tempCvss_vector,
                                                tempCvss_base_score,
                                                tempPlugin_output,
                                                tempPlugin_version,
                                                tempSee_alsoList,
                                                tempPluginId,
                                                tempMicrosoftID);

                    if (entry.isValid())
                    {
                        tempRecord.nessusAddEntry(entry);
                    }
                }
                else if (tag.CompareTo("cve") == 0 &&
                         elementStack.Peek().CompareTo("cve") == 0)
                {
                    elementStack.Pop();
                    tempCveList.Add(tempCve);
                }
                else if (tag.CompareTo("bid") == 0 &&
                         elementStack.Peek().CompareTo("bid") == 0)
                {
                    elementStack.Pop();
                    tempBidList.Add(tempBid);
                }
                else if (tag.CompareTo("xref") == 0 &&
                         elementStack.Peek().CompareTo("xref") == 0)
                {
                    elementStack.Pop();
                    tempOsvdbList.Add(tempOsvdb);
                }
                else if (tag.CompareTo("see_also") == 0 &&
                         elementStack.Peek().CompareTo("see_also") == 0)
                {
                    elementStack.Pop();
                    tempSee_alsoList.Add(tempSee_also);
                }
                else if (elementStack.Peek().CompareTo(tag) == 0)
                {
                    elementStack.Pop();
                }
            }
        }