/// <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); }
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); }