Пример #1
0
        /// <summary>
        ///将传入的ItemSet中的Item数据作为节点添加到现有doc中
        /// </summary>
        /// <param name="newItemSet">保存有要添加item的ItemSet</param>
        public void AddItems(ItemSet newItemSet)
        {
            XmlNode tempNode = _doc.CreateElement("TEMP");

            if (_doc.DocumentElement.HasChildNodes == false)
            {
                _doc.DocumentElement.AppendChild(tempNode);
            }

            for (int i =1; i < newItemSet.Items.Count; i++)
            {
                Item item = newItemSet.Items[i];
                //item节点
                XmlNode itemNode = _doc.CreateElement("item");

                //channel节点
                XmlNode channelNode = _doc.CreateElement("channel");
                channelNode.InnerText = item.Channel;
                itemNode.AppendChild(channelNode);

                //image节点
                XmlNode imgNode = _doc.CreateElement("image");
                imgNode.InnerText = item.ImgUrl;
                itemNode.AppendChild(imgNode);

                //title节点
                XmlNode titleNode = _doc.CreateElement("title");
                titleNode.InnerText = item.Title;
                itemNode.AppendChild(titleNode);

                //link节点
                XmlNode linkNode = _doc.CreateElement("link");
                linkNode.InnerText = item.Link;
                itemNode.AppendChild(linkNode);

                //comments节点
                XmlNode commentsNode = _doc.CreateElement("comments");
                commentsNode.InnerText = item.Comments;
                itemNode.AppendChild(commentsNode);

                //pubDate节点
                XmlNode pubDateNode = _doc.CreateElement("pubDate");
                pubDateNode.InnerText = item.PubDate;
                itemNode.AppendChild(pubDateNode);

                //description节点
                XmlNode descriptionNode = _doc.CreateElement("description");
                descriptionNode.InnerText = item.Description;
                itemNode.AppendChild(descriptionNode);

                //contentEncoded节点
                XmlNode contentEncodedNode = _doc.CreateElement("content", "encoded", contentNamespaceUrl);
                contentEncodedNode.InnerText = item.ContentEncoded;
                itemNode.AppendChild(contentEncodedNode);

                _doc.DocumentElement.InsertBefore(itemNode, _doc.DocumentElement.FirstChild);
            }

            _doc.DocumentElement.RemoveChild(tempNode);
        }
Пример #2
0
        private void ShowResult(string channel)
        {
            XslCompiledTransform xsl = new XslCompiledTransform();

            xsl.Load(Application.StartupPath + "\\" + Properties.Settings.Default.XSL_FILENAME);

            XPathDocument doc = new XPathDocument(Application.StartupPath + "\\" + Properties.Settings.Default.DATA_FILENAME);
            XPathNavigator navigator = doc.CreateNavigator();

            string xPath = "";

            if (channel == toolStripComboBoxChannel.Items[0].ToString())
            {
                xPath = "items/item";
            }
            else
            {
                xPath = string.Format("items/item[channel='{0}']", channel);
            }

            XPathNodeIterator iterator = navigator.Select(xPath);

            ItemSet set = new ItemSet();

            int count = 0;

            while (iterator.MoveNext())
            {
                Item item = new Item(iterator.Current.OuterXml);
                item.Channel = channel;
                set.Add(item);
                count++;

                if (count == 10)
                {
                    break;
                }
            }

            ItemBase resultItemBase = new ItemBase(set, Application.StartupPath + "\\" + Properties.Settings.Default.RESULT_XML_FILENAME, false);

            resultItemBase.AddItems();
            resultItemBase.Save();

            xsl.Transform(Application.StartupPath + "\\" + Properties.Settings.Default.RESULT_XML_FILENAME,
                Application.StartupPath + "\\" + Properties.Settings.Default.RESULT_HTML_FILENAME);
            wbsMain.Navigate(Application.StartupPath + "\\" + Properties.Settings.Default.RESULT_HTML_FILENAME);
        }