在XML文档中替换元素名称的做法

不要小看这个操作,其实是不太容易的。请注意,我们是要替换掉元素的名称,而不是元素的值。

XML的内容在内存中是一个DOM树,要替换掉一个元素,其实是要新建一个元素,并且将原先元素的所有子元素都复制过来。在LINQ TO XML中用ReplaceWith来实现

using System;
using System.Linq;
using System.Xml.Linq;
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            XDocument doc = new XDocument(
                new XElement("Tables"
                    , new XElement("Table"
                        , new XElement("Name", "Orders")
                        , new XElement("Owner", "chenxizhang"))
                    , new XElement("Table"
                        , new XElement("Name", "Customers")
                        , new XElement("Owner", "Allen"))
                    ));
            Console.WriteLine("原始的XML内容:");
            Console.WriteLine(doc);
            //改变Tables元素名称为Items
            Console.WriteLine("改变了根元素之后显示的效果:");
            XElement root = doc.Element("Tables");
            root.ReplaceWith(new XElement("Items", root.Elements("Table")));
            Console.WriteLine(doc);
            //改变Table元素名称为Item 
            Console.WriteLine("改变了子元素之后显示的效果:");
            foreach (var item in doc.Elements("Items").Descendants().ToList())//这里一定要先ToList
            {
                item.ReplaceWith(new XElement("Item", item.Descendants()));
            }
            Console.WriteLine(doc);
            Console.Read();
        }
    }
}

文档中替换元素名称的做法-">

时间: 2024-10-31 17:17:16

在XML文档中替换元素名称的做法的相关文章

完成asp语言对XML文档中指定节点文本的增加、删除、修改、查看

<% '---------------------------------------------------------------- '程序简介: 完成asp教程语言对xml文档中指定节点文本的增加.删除.修改.查看 '入口参数: 无 '出口参数: 无 '------------------------------------------------ '函数名字:connectxml() '入口参数: filename 需要连接或打开的xml文件名 '出口参数: 无 '返回值 :connec

xml自定义标签-xml文档中存在自定义的标签,是否是web攻击

问题描述 xml文档中存在自定义的标签,是否是web攻击 百度web注入攻击的概念,大都是说客户端提交表单到后台验证,结果后台对提交的表单没有进行有效性验证导致问题出现. 现在存在这样一个系统:数据存在xml文档中,把数据导入系统时,对xml文档进行解析,验证没有错误后保存到数据库中.但只是检查该系统运行必须数据是否存在,是否正确,如果多出一个自定义标签,如,导入时不做任何验证,也不保存到数据库中. 请问,这种情况是否符合web攻击方式中的一种?严重性如何? 谢谢

在Word 2010文档中替换字符

用户可以借助Word 2010的"查找和替换"功能快速替换Word文档中的目标内容,操作步骤如下所述: 第1步,打开Word 2010文档窗口,在"开始"功能区的"编辑"分组中单击"替换"按钮,如图2010081206所示. 图2010081206 单击"替换"按钮 第2步,打开"查找和替换"对话框,并切换到"替换"选项卡.在"查找内容"编辑框中输

flash中加载XML文档中文本到swf文件方法

创建一个新的 Flash 文档,并将其另存为 xmlReviews.fla.     将下面的代码添加到时间轴中的第 1 帧: this.createTextField("my_txt", 10, 10, 10, 320, 100);  代码如下 复制代码 my_txt.autoSize = "left"; my_txt.border = true; my_txt.multiline = true; my_txt.wordWrap = true; var revie

使用XSL将XML文档中的CDATA注释输出为HTML文本

xml 示例代码 1.   test.xml <?xml version="1.0" encoding="gb2312"?><?xml-stylesheet href="test.xsl" type="text/xsl"?><entry> <title>entry with images</title> <date>August 09, 2003</

如何给XML文档中节点属性设置前缀呢?

问题描述 假如有一个节点<span>内容</span>我想给节点属性加上xml:space="preserve"属性就是<spanxml:space="preserve">内容</span>怎么做呢?另外问下这个属性可以加到根节点上吗?谢谢! 解决方案 解决方案二:晕等了一天也没人回答啊..难道太简单了?解决方案三:XmlElementbt=doc.CreateElement("wsc","

使用XSL将XML文档中的CDATA注释输出为HTML文本_XML示例

要利用DOM 来存取XML 文件,你必须将XML 文件连结到HTML 网页上. 示例代码 1. test.xml <?xml version="1.0" encoding="gb2312"?><?xml-stylesheet href="test.xsl" type="text/xsl"?><entry><title>entry with images</title>

dom XML文档元素互相复制解决方法

错误信息如下: The node to be inserted is from a different document context 意思是不能直接插入其他xml文档中的元素.解决方法是用ImportNode();函数先导出.XmlDocument xmlOld = new 今天在使用XML节点复制时,遇到一些问题,浪费了2个小时的时间.可是,公司的网络又慢,只能通过MSN请朋友帮我根据错误信息找.还好,找到了解决问题的方法.  代码如下 复制代码 XmlDocument();//老文档 X

使用证书对XML文档进行加解密

xml|解密 Imports SystemImports System.XmlImports System.Security.CryptographyImports System.Security.Cryptography.XmlImports System.Security.Cryptography.X509CertificatesPublic Class Form1     Private Sub Form1_Load(ByVal sender As System.Object, ByVal