问题描述
从数据库里面读取数据然后写入xml文件,代码如下:publicvoidbind(){DbProvidersdb=newDbProviders();DataSetds=db.GetResult("selectPhilosophyTypefromdbo.T_PhilosophygroupbyPhilosophyType");if(ds.Tables[0].Rows.Count>0){XmlDocumentxmlDoc=newXmlDocument();xmlDoc.Load(Server.MapPath("../swf/philosophy/philosophy.xml"));XmlNoderoot=xmlDoc.SelectSingleNode("root");//查找<root>root.RemoveAll();for(inti=0;i<ds.Tables[0].Rows.Count;i++){XmlElementxe1=xmlDoc.CreateElement("list");//创建一个<list>节点xe1.SetAttribute("listname",ds.Tables[0].Rows[i][0].ToString().Trim());//设置该节点listname属性DataSettextds=db.GetResult("selectCkeyWords,EkeyWords,PicUrl,Keycontentfromdbo.T_PhilosophywherePhilosophyType='"+ds.Tables[0].Rows[i][0].ToString().Trim()+"'");if(textds.Tables[0].Rows.Count>0){for(inta=0;a<textds.Tables[0].Rows.Count;a++){XmlElementxe2=xmlDoc.CreateElement("list");//创建第二级<list>节点xe2.SetAttribute("cnName",textds.Tables[0].Rows[a][0].ToString().Trim());xe2.SetAttribute("enName",textds.Tables[0].Rows[a][1].ToString().Trim());xe2.SetAttribute("imgUrl","../swf/philosophy/"+textds.Tables[0].Rows[a][2].ToString().Trim());xe2.InnerText="<![CDATA["+textds.Tables[0].Rows[a][3].ToString().Trim()+"]]>";xe1.AppendChild(xe2);}}root.AppendChild(xe1);xmlDoc.Save(Server.MapPath("../swf/philosophy/philosophy.xml"));}}}标红色的部分xe2.InnerText="<![CDATA["+textds.Tables[0].Rows[a][3].ToString().Trim()+"]]>"给节点设置包含HTML标签的文本内容,比如:“<p><fontcolor="#515151"><b>环境观关爱环境,绿色发展</b></font></p><p><fontcolor="#999999">释义:</font>积极履行企业的社会责任,珍爱环境,自觉做好节能减排和环境保护工作;大力开发新兴能源产业,努力绿化美化生产生活环境,造福子孙后代。</p>”这段文本写入xml文件后变成:"<![CDATA[<p><fontcolor="#515151"><b>环境观关爱环境,绿色发展</b></font></p><p><fontcolor="#999999">释义:</font>积极履行企业的社会责任,珍爱环境,自觉做好节能减排和环境保护工作;大力开发新兴能源产业,努力绿化美化生产生活环境,造福子孙后代。</p>]]>"写入XML<p>标签变成了<p>,所有的"<>"都无法正常写入,请问该如何正常的写入,求高手帮忙!!!!!
解决方案
解决方案二:
//转换HTML语言中的字符publicstaticStringchangeHTML(Stringsource){Stringstr="";str=source.replace(">",">");str=source.replace("<","<");str=source.replace(""," ");str=source.replace("&","&");returnstr;}需要的你接着在里面写
解决方案三:
你的应该是source.replace(">",">");这样
解决方案四:
引用2楼kongwei521的回复:
你的应该是source.replace("&gt;",">");这样
我从数据库里取出来的值就是<>,取出来是完整的<P>标签,不用替换了吧
解决方案五:
引用1楼kongwei521的回复:
//转换HTML语言中的字符publicstaticStringchangeHTML(Stringsource){Stringstr="";str=source.replace(">","&gt;");str=source.replace("<","&lt;");str=source.replace("","&nbsp;");s……
没理解我的意思,数据库里本来就是正常的HTML文本,只是写入xml文件后变成了<p>编码,我要的是写入xml文件的文本跟数据库里的文本一样!