asp.net+XML "修改模块"代码修改,该如何解决
asp.net+XML "修改模块"代码修改
先帖上代码!
点击修改按钮之后XML文件如下:
我想将修改后的<main>&lt;p&gt;111&lt;/p&gt;</main>节点以
<main><![CDATA[<b>111<b>]]></main>
<![CDATA[]]>这种形式保存在XML节点中,请教高人.CS文件中如何修改?
------解决方案--------------------
XmlWriter writer
writer.WriteCData("");
http://www.cnblogs.com/torome/articles/308824.html
------解决方案--------------------
找到所有SelectNodes
然后再foreach找到单个SelectSingleNode
然后找到属性或InnerText修改即可。你是想替换里面的转义字符吧。
是不是需要编码?
------解决方案--------------------
http://blog.****.net/greatverve/archive/2008/12/10/3490741.aspx
XML我掌握得不好,给你个操作类。
你究竟出什么错?
先帖上代码!
- C# code
using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using System.Xml; using System.IO; public partial class manager_edit_news : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { string url = Server.MapPath("../../news.xml"); string news_id = Request.QueryString["news_id"]; XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load(url); //加载XML文档 XmlNode root = xmlDoc.SelectSingleNode("news/content[news_id ='" + news_id + "']"); if (root != null) { Title.Text = root.ChildNodes[0].InnerText; Date.Text = DateTime.Now.ToString(); Description.Text = root.ChildNodes[2].InnerText; Content.Value = root.ChildNodes[3].InnerText; } } protected void btnSend_Click(object sender, EventArgs e) { string url = Server.MapPath("../../news.xml"); string news_id = Request.QueryString["news_id"]; string title = Request.Form["title"]; string description = Request.Form["description"]; string content = Request.Form["Content"]; //获取行信息的索引字段news_id XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load(url); //加载XML文件 XmlNode root = xmlDoc.SelectSingleNode("news");//查找news节点 XmlNodeList xnl = root.ChildNodes; //获取news下面所以子节点 for (int i = 0; i < xnl.Count; i++) { XmlNodeList xnl11 = xnl.Item(i).SelectNodes("news_id");//查找news_id下面节点集合 XmlElement xe = (XmlElement)xnl11.Item(0); //news_id节点下面的元素 if (xe.InnerText == news_id) //获取节点以及所有子集的串联值 { xe.InnerText = news_id; xe.ParentNode.ChildNodes.Item(0).InnerText = title; xe.ParentNode.ChildNodes.Item(1).InnerText = DateTime.Now.ToString(); xe.ParentNode.ChildNodes.Item(2).InnerText = description; [color=#FF0000]xe.ParentNode.ChildNodes.Item(3).InnerText = content;[/color] } } xmlDoc.Save(url); Response.Redirect("manager.aspx"); } }
点击修改按钮之后XML文件如下:
- XML code
<news originalMenuTitleColor="0xCCCC33" originalMenuDateColor="0x666666" currentMenuTitleColor="0x00CCFF" currentMenuDateColor="0xCCCCCC" arrowOutColor="0x999999" arrowOverColor="0xCCCC33" mainTitleColor="0xCCCC33" menuSpacing="40" textHolderXStart="220" textHolderXFinish="240" mainTextWidth="600" scrollbarX="855"> <content> <title>测试文章</title> <date>2008-12-22 12:27:37</date> <description>测试文章简介</description> <main>&lt;p&gt;111&lt;/p&gt;</main> <news_id>1</news_id> </content>
我想将修改后的<main>&lt;p&gt;111&lt;/p&gt;</main>节点以
<main><![CDATA[<b>111<b>]]></main>
<![CDATA[]]>这种形式保存在XML节点中,请教高人.CS文件中如何修改?
------解决方案--------------------
XmlWriter writer
writer.WriteCData("");
http://www.cnblogs.com/torome/articles/308824.html
------解决方案--------------------
找到所有SelectNodes
然后再foreach找到单个SelectSingleNode
然后找到属性或InnerText修改即可。你是想替换里面的转义字符吧。
是不是需要编码?
------解决方案--------------------
http://blog.****.net/greatverve/archive/2008/12/10/3490741.aspx
XML我掌握得不好,给你个操作类。
你究竟出什么错?