类型:转载 责任编辑:asp.net 日期:2007/05/23
热门软件下载:
我想通过程序生成一个名为Text的XML文件,希望效果如下:
<?xml version="1.0" encoding="gb2312"?>
<?xml-stylesheet type=text/xsl href=Text.xsl?>
<Text>
<Textxml>
<Name> 知道天高地厚</Name>
<Content><![CDATA[ 真是不知高地厚 的东西我的心情好 ]]></Content>
</Textxml>
</Text>
问题如下:
如何指定样式 <?xml-stylesheet type=text/xsl href=Text.xsl?>
如何插入 <![CDATA[ ]]>
我的CS文件如下,我应该如何修改
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Xml;
namespace Asp.Net10
{
/// <summary>
/// WebForm1 的摘要说明。
/// </summary>
public class WebForm1 : System.Web.UI.Page
{
protected System.Web.UI.WebControls.TextBox Title;
protected System.Web.UI.WebControls.TextBox Message;
protected System.Web.UI.WebControls.Button OKbut;
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
}
#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.OKbut.Click += new System.EventHandler(this.OKbut_Click);
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
private void OKbut_Click(object sender, System.EventArgs e)
{
string Titlestr,Messagestr;
Titlestr=Title.Text;
Messagestr=Message.Text;
XmlDocument xmldoc = new XmlDocument();
xmldoc.Load(Server.MapPath("Text.xml"));
XmlNode root=xmldoc.DocumentElement;
XmlNode newElem=xmldoc.CreateElement("Textxml");
XmlNode subElem=xmldoc.CreateElement("Name");
subElem.InnerText=Titlestr;
newElem.AppendChild(subElem);
subElem=xmldoc.CreateElement("Content");
subElem.InnerText=Messagestr;
newElem.AppendChild(subElem);
root.AppendChild(newElem);
xmldoc.Save(Server.MapPath("Text.xml"));
}
}
}
网友回答:
XmlDocument doc=new XmlDocument();
string sXml="<Text>" +
"<Textxml>" +
"<Name></Name>"+
"<Content></Content>"+
"</Textxml>" +
"</Text>";
doc.LoadXml(sXml);
XmlDeclaration dec=doc.CreateXmlDeclaration("1.0","GB2312",null);
string PItext = "type=text/xsl href=text.xsl";
XmlProcessingInstruction pi=doc.CreateProcessingInstruction("xml-stylesheet",PItext);
doc.InsertBefore(dec,doc.DocumentElement);
doc.InsertBefore(pi,doc.DocumentElement);
doc.DocumentElement.ChildNodes[0].ChildNodes[0].InnerText="知道天高地厚";
XmlCDataSection CDs=doc.CreateCDataSection("真是不知高地厚 的东西我的心情好");
doc.DocumentElement.ChildNodes[0].ChildNodes[1].AppendChild(CDs);
doc.Save(@"e:\1234.xml");
上面只是让你认识怎么指定样式和指定XML的申明、创作CDATA节点,
如果是真真的用,下面的更加方便
--------------------------------------------------
XmlDocument doc=new XmlDocument();
string sXml="<?xml version=1.0 encoding=gb2312?>"+
"<?xml-stylesheet type=text/xsl href=text.xsl?>"+
"<Text>" +
"<Textxml>" +
"<Name>知道天高地厚</Name>"+
"<Content><![CDATA[真是不知高地厚 的东西我的心情好]]></Content>"+
"</Textxml>" +
"</Text>";
doc.LoadXml(sXml);
doc.Save(@"e:\1234.xml");
已知有一个XML文件如下:
<?xml version="1.0" encoding="gb2312"?>
<bookstore>
<book genre="fantasy" ISBN="2-3631-4">
<title>Oberons Legacy</title>
<author>Corets, Eva</author>
<price>5.95</price>
</book>
</bookstore>
1、往<bookstore>节点中插入一个<book>节点:
XmlDocument xmlDoc=new XmlDocument();
xmlDoc.Load("bookstore.xml");
XmlNode root=xmlDoc.SelectSingleNode("bookstore");//查找<bookstore>
XmlElement xe1=xmlDoc.CreateElement("book");//创建一个<book>节点
xe1.SetAttribute("genre","李赞红");//设置该节点genre属性
xe1.SetAttribute("ISBN","2-3631-4");//设置该节点ISBN属性
XmlElement xesub1=xmlDoc.CreateElement("title");
xesub1.InnerText="CS从入门到精通";//设置文本节点
xe1.AppendChild(xesub1);//添加到<book>节点中
XmlElement xesub2=xmlDoc.CreateElement("author");
xesub2.InnerText="候捷";
xe1.AppendChild(xesub2);
XmlElement xesub3=xmlDoc.CreateElement("price");
xesub3.InnerText="58.3";
xe1.AppendChild(xesub3);
root.AppendChild(xe1);//添加到<bookstore>节点中
xmlDoc.Save("bookstore.xml");
//================
结果为:
<?xml version="1.0" encoding="gb2312"?>
<bookstore>
<book genre="fantasy" ISBN="2-3631-4">
<title>Oberons Legacy</title>
<author>Corets, Eva</author>
<price>5.95</price>
</book>
<book genre="李赞红" ISBN="2-3631-4">
<title>CS从入门到精通</title>
<author>候捷</author>
<price>58.3</price>
</book>
</bookstore>
首先是XML文件:
<?xml version="1.0" encoding="gb2312"?>
<?xml-stylesheet type=text/xsl href=test.xsl?>
<Text>
<Textxml>
<Name> 知道天高地厚</Name>
<Content><![CDATA[ 真是不知高地厚<img src="pic/text.gif" />的东西我的心情好]]></Content>
</Textxml>
</Text>
test.xsl:
<?xml version="1.0" encoding="gb2312" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/Text/Textxml">
<xsl:value-of select="Content" disable-output-escaping = "yes" />
</xsl:template>
</xsl:stylesheet>
</Text>
string xml = "<?xml version=\"1.0\" encoding=\"gb2312\"?><Text><Textxml> <Name> 知道天高地厚</Name></Textxml></Text> ";
System.Xml.XmlDocument doc = new System.Xml.XmlDocument();
doc.LoadXml(xml);
Response.Clear();
Response.Write (Server.HtmlEncode(doc.OuterXml));
Response.Write ("<hr>");
System.Xml.XmlProcessingInstruction newPI;
String PItext = "type=text/xsl href=Text.xsl";
newPI = doc.CreateProcessingInstruction("xml-stylesheet", PItext);
doc.InsertBefore(newPI,doc.DocumentElement);
System.Xml.XmlNode nod = doc.SelectSingleNode("//Textxml");
System.Xml.XmlNode newNode = doc.CreateNode(System.Xml.XmlNodeType.Element,"Content","");
System.Xml.XmlCDataSection CData;
CData = doc.CreateCDataSection(" 真是不知高地厚 的东西我的心情好 ");
newNode.AppendChild(CData);
nod.AppendChild(newNode);
Response.Write (Server.HtmlEncode(doc.OuterXml));