生成xml是,怎么生成的代码是对的,页面显示不对,右键查看源代码,存储为xml文件,就能正常显示,但是把生成的xml文件,直接response.write(xml.tostring()) 出来,就如图片显示,把所有的xml内容显示出来了,没有节点呢。 分析可能是以字符窜方式解析的,问不是xml。请高手赐教。一下是生成的源代码:
是用改了XmlDocument 和XmlTextWriter两种方法生成,输出结果都一样。我还试验了一下,保存一个文件,然后在读取文件,显示结果还是如图片,所以请高手赐教。
try { DataSetWebService GetService = new DataSetWebService(); Hashtable SqlCollection = new Hashtable(); SqlCollection.Add("ToAccess", "SELECT * from news where date between #" + DateTime.Now.AddMonths(-6).ToShortDateString() + "# and #" + DateTime.Now.ToShortDateString() + "#"); DictionaryEntry[] _DictEntry = new DictionaryEntry[SqlCollection.Count]; SqlCollection.CopyTo(_DictEntry, 0); String _Context = ClsCommon.Serializer(_DictEntry); DataSet ds = GetService.GetDataSet(_Context);
string linkStr = ""; string cssStr = ""; DataSet dt = GetService.GetDataTable("ToHKIE_APP_CMT", "select * from tbl_XmlSetup where DbName='ToAccess'"); if (dt != null && dt.Tables[0].Rows.Count > 0) { linkStr = dt.Tables[0].Rows[0]["Link"].ToString(); cssStr = dt.Tables[0].Rows[0]["CssContent"].ToString(); }
//方法一,用XmlDocument生成 XmlDocument xmlDoc = new XmlDocument(); XmlDeclaration declarNode = xmlDoc.CreateXmlDeclaration("1.0", Encoding.Default.ToString(), "yes"); xmlDoc.AppendChild(declarNode); XmlComment xmlCom = xmlDoc.CreateComment("Copyright Innoways.com "); xmlDoc.AppendChild(xmlCom); XmlNode rootNode = xmlDoc.CreateElement("NEWES"); if (ds != null) { for (int i = 0; i < ds.Tables.Count; i++) { foreach (DataRow row in ds.Tables[i].Rows) { XmlNode newNode = xmlDoc.CreateElement("NEWS"); XmlNode newIDNode = xmlDoc.CreateElement("NEWS_ID"); newIDNode.InnerText = row["serialno"].ToString(); newNode.AppendChild(newIDNode);
XmlNode dateNode = xmlDoc.CreateElement("DATE"); dateNode.InnerText = ClsCommon.ConvertDateTimeToString(row["date"], "dd.MMM.yyyy"); newNode.AppendChild(dateNode);
XmlNode updateDateNode = xmlDoc.CreateElement("UPDATE_DATE"); updateDateNode.InnerText = ClsCommon.ConvertDateTimeToString(row["update"], "dd.MMM.yyyy"); newNode.AppendChild(updateDateNode);
XmlNode deadDateNode = xmlDoc.CreateElement("DEAD_DATE"); deadDateNode.InnerText = ClsCommon.ConvertDateTimeToString(row["deaddate"], "dd.MMM.yyyy"); newNode.AppendChild(deadDateNode);
XmlNode headLineNode = xmlDoc.CreateElement("HEADLINE"); XmlCDataSection headLineCdata = xmlDoc.CreateCDataSection(CommonMethods.AddHtmlCode(row["headline"].ToString(), linkStr, linkStr)); headLineNode.AppendChild(headLineCdata); newNode.AppendChild(headLineNode);
XmlNode htmlNode = xmlDoc.CreateElement("HTML"); XmlCDataSection htmlCdata = xmlDoc.CreateCDataSection(CommonMethods.AddHtmlCode(cssStr, row["desc"].ToString(), linkStr, linkStr)); htmlNode.AppendChild(htmlCdata); newNode.AppendChild(htmlNode);
XmlNode logoNode = xmlDoc.CreateElement("LOGO"); XmlCDataSection logoCdata = xmlDoc.CreateCDataSection("http://demo.i-wanna.com/hkie_apps_xml/material/testing_default_logo.jpg"); //对应的logo地址 logoNode.AppendChild(logoCdata); newNode.AppendChild(logoNode);
XmlNode activeNode = xmlDoc.CreateElement("ACTIVE"); activeNode.InnerText = row["active"].ToString(); newNode.AppendChild(activeNode); rootNode.AppendChild(newNode); } } } xmlDoc.AppendChild(rootNode);
MemoryStream stream = new MemoryStream(); XmlTextWriter writer = new XmlTextWriter(stream, Encoding.Default); writer.Formatting = Formatting.Indented; xmlDoc.Save(writer); StreamReader reader = new StreamReader(stream, Encoding.Default); stream.Position = 0; String content = reader.ReadToEnd(); reader.Close(); stream.Close(); Response.Write(content); ds.Dispose(); dt.Dispose();
//方法二,用XmlTextWriter生成 //XmlTextWriter xmlWrite = new XmlTextWriter(Response.OutputStream, Encoding.Default); //xmlWrite.WriteStartDocument(); //xmlWrite.Formatting = Formatting.Indented; //xmlWrite.WriteComment("Copyright Innoways.com "); //xmlWrite.WriteStartElement("NEWES"); //if (ds != null) //{ // for (int i = 0; i < ds.Tables.Count; i++) // { // foreach (DataRow row in ds.Tables[i].Rows) // { // xmlWrite.WriteStartElement("NEWS"); // xmlWrite.WriteElementString("NEWS_ID", row["serialno"].ToString()); // xmlWrite.WriteElementString("DATE", ClsCommon.ConvertDateTimeToString(row["date"], "dd.MMM.yyyy")); // xmlWrite.WriteElementString("UPDATE_DATE", ClsCommon.ConvertDateTimeToString(row["update"], "dd.MMM.yyyy")); // xmlWrite.WriteElementString("DEAD_DATE", ClsCommon.ConvertDateTimeToString(row["deaddate"], "dd.MMM.yyyy"));
// xmlWrite.WriteRaw(@"" + CommonMethods.AddHtmlCode(cssStr, row["headline"].ToString(), linkStr, linkStr) + ""); // //xmlWrite.WriteRaw("" + CommonMethods.AddHtmlCode(cssStr, row["desc"].ToString(), linkStr, linkStr) + ""); // //xmlWrite.WriteRaw("" + CommonMethods.AddCDATA("http://demo.i-wanna.com/hkie_apps_xml/material/testing_default_logo.jpg") + "");
// //xmlWrite.WriteElementString("HEADLINE", CommonMethods.AddHtmlCode(cssStr, row["headline"].ToString(), linkStr, linkStr)); // //xmlWrite.WriteElementString("HTML", CommonMethods.AddHtmlCode(cssStr, row["desc"].ToString(), linkStr, linkStr)); // //xmlWrite.WriteElementString("LOGO", CommonMethods.AddCDATA("http://demo.i-wanna.com/hkie_apps_xml/material/testing_default_logo.jpg")); //暂无此字段,等客户加上
// xmlWrite.WriteElementString("ACTIVE", row["active"].ToString()); // xmlWrite.WriteEndElement(); // } // } //}
//xmlWrite.WriteEndElement(); //xmlWrite.WriteEndDocument();
//xmlWrite.Flush(); //xmlWrite.Close(); //doc.Load("new.xml"); //Response.Write(doc.); // File.Delete("new.xml"); //Stream sm = xmlWrite.BaseStream; //XmlDocument doc = new XmlDocument(); //doc.Load(sm); //string s = doc.InnerText; //ds.Dispose(); //dt.Dispose(); } catch (Exception ex) {
}
- 4 回答
- 0 关注
- 547 浏览
添加回答
举报
0/150
提交
取消