在ASP.net中的XML操作笔记

前几天一老鸟跑来说:“小Q,看来这几天你没有什么事情,来给你安排一下工作!”我曰:“哦”,~~~。从此就开始饿补.net中操作XML的东东。好了,废话不说,做先!

下面是的代码是XML的模板TestTemplate.vxml

1
2
3
4
5
6
7
8 此值小于9
9
10
11 此值大于2
12
13
14
15

在这个模板中保存的是VoiceXML文件,这是用来制定语音流程的东东,通过它您就能够实现类似10086或118114的语音台的功能。(VoiceXML小弟正在学习,以后会写些相关的随笔。)

下面的这行代码就是Vxml.aspx中的内容。注意:必须要将除下面这行代码之外的所有内容删除,只有这样才能以流的方式输出来。

1

汗颜,就为了前面的这行代码我整整浪费了一个下午,郁闷!

下面的这行代码就是我今天的成果,它的名字就叫“Vxml.aspx.cs”!哈哈~~“呆,骂规骂,别打呀!~~~救命呀!-----咚”。(从桌子下爬了起来,)。在这里必须要应用两个库,就是System.IO;和System.Xml。具体的执行过程是:先读取TestTemplate.vxml;然后,替换模板中相关节点属性的值“val”为“老鼠”;再后,在form节点的最后部分加入<老鼠 zizi="……">……;最后,在本页输出结果。

1using System;
2using System.Data;
3using System.Configuration;
4using System.Collections;
5using System.Web;
6using System.Web.Security;
7using System.Web.UI;
8using System.Web.UI.WebControls;
9using System.Web.UI.WebControls.WebParts;
10using System.Web.UI.HtmlControls;
11using System.IO;
12using System.Xml;
13public partial class Vxml_Vxml : System.Web.UI.Page
14{
15 protected void Page_Load(object sender, EventArgs e)
16 {
17 Response.Clear();
18 string path = Server.MapPath("TestTemplate.vxml");
19 //DOM方式读取
20 XmlDocument doc = new XmlDocument();//建立XML文件对象
21 doc.Load(path);//读取xml文件
22 XmlElement objElement = doc.DocumentElement;//获取XML文件的根元素
23 foreach (XmlNode test in objElement.ChildNodes)
24 {
25 if (test.Name == "form")//找到名称为form的节点
26 {
27 foreach (XmlNode test1 in test.ChildNodes)//在form节点中便利节点
28 {//找到在“form”子节点中属性“name”的值为"val"的节点。
29 if (test1.Attributes.Count > 0 && test1.Attributes["name"].InnerXml == "val")
30 {
31 test1.Attributes["name"].InnerXml = "老鼠";//设置name属性的值为“老鼠”
32 }
33 else if (test1.Name == "block")//找到“block”节点
34 {
35 foreach (XmlNode test2 in test1.ChildNodes)
36 {//将“block”节点的所以子节点属性“cond”中的“Val”替换成“老鼠”。
37 if (test2.Attributes["cond"].InnerXml.Contains("val"))
38 {
39 string str = test2.Attributes["cond"].InnerXml;
40 str = "老鼠" + str.Substring(3);//不能用“Replace”真是郁闷
41 test2.Attributes["cond"].InnerXml = str;
42 }
43 }
44 }
45 }
46 XmlElement node = doc.CreateElement("老鼠");//建立“老鼠”节点
47 XmlAttribute attribute = doc.CreateAttribute("zizi");
48 node.SetAttributeNode(attribute);
49 node.SetAttribute("zizi", "……");
50 test.AppendChild(node);
51 node.InnerXml = "……";
52 test.InsertBefore(node, test.LastChild);//将新建的“老鼠”节点给“form”
53 doc.Save(Response.OutputStream);//将修改后的xml文件以流的方式输出到当前页面。
54 }
55 }
56 }
57}
58

看看,这就是结果。

1
2
3
4
5
6
7
8 此值小于9
9
10
11 此值大于2
12
13
14 <老鼠 zizi="……">……
15
16

好了,写完了,真累!哦,下班了!走。

时间: 2025-01-21 01:50:38

在ASP.net中的XML操作笔记的相关文章

ASP.NET中根据XML动态创建并使用WEB组件(三)

asp.net|web|xml|创建|动态 ASP.NET中根据XML动态创建使用WEB组件 (三) 作者:厉铁帅 四.使用动态创建的WEB组件 如果在动态创建了WEB组件后,要使用该组件,可使用如下语句 String sequencelabelID="sequencedataTB"+icount.ToString(); Label sequencelabel=(Label)myPlaceHolder.FindControl(sequencelabelID); Sequencelabe

ASP.NET中根据XML动态创建并使用WEB组件(一)

asp.net|web|xml|创建|动态 ASP.NET中根据XML动态创建使用WEB组件 (一) 作者:厉铁帅 前段时间笔者在开发中需要动态创建WEB组件,本以为是小事一桩,谁知看时容易做时难.里面还真有些小问题.下面笔者就结合自己的程序来介绍一下如何动态创建并使用WEB组件,希望能给做类似工作的朋友提供一点帮助. 一.程序思路 程序主要分三部分: 1.程序要根据XML中的数据信息确定需要创建的WEB组件的个数. 2.动态创建WEB组件. 3.使用动态创建的WEB组件. 其中2和3是笔者要重

ASP.NET中根据XML动态创建并使用WEB组件(二)

asp.net|web|xml|创建|动态 ASP.NET中根据XML动态创建使用WEB组件 (二) 作者:厉铁帅 三.动态创建WEB组件. 先来看程序实例: private void createconfigtable(int totalnum,int[] sequenceint,string[] namestr,string[] ipstr) { //根据得到测量点的总数,动态生成输入框 for(int i=1;i<=totalnum;i++) { //创建表格 HtmlTable show

ASP.NET中根据XML动态创建使用WEB组件

asp.net|web|xml|创建|动态   前段时间笔者在开发中需要动态创建WEB组件,本以为是小事一桩,谁知看时容易做时难.里面还真有些小问题.下面笔者就结合自己的程序来介绍一下如何动态创建并使用WEB组件,希望能给做类似工作的朋友提供一点帮助.   一.程序思路   程序主要分三部分:   1.程序要根据XML中的数据信息确定需要创建的WEB组件的个数.   2.动态创建WEB组件.   3.使用动态创建的WEB组件.   其中2和3是笔者要重点介绍的部分.   下面笔者就按照这三部分结

使ASP.NET中的数据库操作变得简单

asp.net|数据|数据库 作者:Willmove 主页:http://www.amuhouse.com E-mail: willmove@gmail.com 声明:系作者原创作品,转载请注明出处. ASP.NET中一般都是使用SQL Server作为后台数据库.一般的ASP.NET数据库操作示例程序都是使用单独的数据访问,就是说每个页面都写连接到数据库,存取数据,关闭数据库的代码.这种方式带来了一些弊端,一个就是如果你的数据库改变了,你必须一个页面一个页面的去更改数据库连接代码. 第二个弊端

ASP.NET中数据库的操作初步----增加、删除、修改

asp.net|数据|数据库 注意:本文暂时不讲解数据库的数据调出和显示,因为他涉及的东西比较多,所以我们将另外详细讲解.本文主要要讲的是数据库的增加.删除.修改. 一.定义OleDbCommand类型变量:MyCommand 要对数据库进行增加.删除.修改的操作我们还需要根据MyConnectio的类型定义一个OleDbCommand或者SqlCommand对象(请注意如果MyConnection是OleDbConnection类型,那么只能用OleDbCommand:如果MyConnecti

ASP.NET中的XML表单控件

asp.net|xml|控件 导 读:介绍了有关ASP.NET中XML控件的使用,有个小BUG:在WEBFORM.ASPX中出现的XML控件,其中的transformsource属性设定了样式表文件路径,可是在文章出处没有找到这个XSL文件.:( 自己解决吧. --------------------------------------------------------------------------------在这个代码中揭示了微软在ASP.NET架构中隐藏的一个WEB表单控件,即<as

ASP.NET中根据XML动态创建使用WEB组件_实用技巧

  前段时间笔者在开发中需要动态创建WEB组件,本以为是小事一桩,谁知看时容易做时难.里面还真有些小问题.下面笔者就结合自己的程序来介绍一下如何动态创建并使用WEB组件,希望能给做类似工作的朋友提供一点帮助.   一.程序思路   程序主要分三部分:   1.程序要根据XML中的数据信息确定需要创建的WEB组件的个数.   2.动态创建WEB组件.   3.使用动态创建的WEB组件.   其中2和3是笔者要重点介绍的部分.   下面笔者就按照这三部分结合程序实例(以c#为例)来一一介绍.   二

asp.net中Silverlight文件操作

提到Silverlight中的文件操作,第一个肯定是独立存储Isolated Store,这个东东相当于于一个本地的小型存储空间,通过它可以把一些不重要的数据(用户的一些配置信息或者文件) IsolatedStorageFile: 保存在客户端,由于这个空间是可以在本地查看得到,同时用户也可以随意的删除这些文件件以及文件,所以不要存放重要的信息. IsolatedStorageFile.GetUserStoreForApplication();得到基于当前用户和当前应用程序的IsolatedSt