xml 操作(动态添加 property属性 其他节点同理)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Linq;
using System.Xml.Linq;
using System.Xml;

namespace ConsoleApplication27
{
    class Program
    {
        static void Main(string[] args)
        {

            var folderPath = AppDomain.CurrentDomain.BaseDirectory + "..\\..\\Mapping";
            var files = System.IO.Directory.GetFiles(folderPath);
            foreach (string file in files)
            {

                var path = file; //AppDomain.CurrentDomain.BaseDirectory + "..\\..\\Mapping\\PosPositionProductMapping.hbm.xml";
                XmlDocument doc = new XmlDocument();
                doc.Load(path);
                var plist = doc.GetElementsByTagName("property");

                bool find1 = false;
                bool find2 = false;
                foreach (XmlNode item in plist)
                {

                    if (find1 == false)
                        find1 = item.Attributes["column"].Value.ToLower().Contains("CREATED_EMPLOYEE_NAME".ToLower());
                    if (find2 == false)
                        find2 = item.Attributes["column"].Value.ToLower().Contains("CREATED_EMPLOYEE_ID".ToLower());

                }
                var cls = doc.GetElementsByTagName("class")[0];
                if (find1 == false)
                {
                    var e1 = doc.CreateElement("property", doc.DocumentElement.NamespaceURI);
                    e1.SetAttribute("column", "CREATED_EMPLOYEE_NAME");
                    e1.SetAttribute("name", "CreatedEmployeeName");
                    e1.SetAttribute("update", "false");
                    cls.AppendChild(e1);
                }
                if (find2 == false)
                {
                    var e2 = doc.CreateElement("property", doc.DocumentElement.NamespaceURI);
                    e2.SetAttribute("column", "CREATED_EMPLOYEE_ID");
                    e2.SetAttribute("name", "CreatedEmployeeId");
                    e2.SetAttribute("update", "false");
                    cls.AppendChild(e2);
                }
                doc.Save(path);
            }

        }
    }
}
时间: 2024-08-10 23:21:59

xml 操作(动态添加 property属性 其他节点同理)的相关文章

vue中如何动态添加readonly属性

动态绑定input的readonly属性 1 <inpu :readonly="status ? false : 'readonly'"> status 为 false时添加 readonly 属性,只读,false不要加引号! 原文地址:https://www.cnblogs.com/gopark/p/11172967.html

jQuery - 02. 样式表属性操作/类操作、动画、显示隐藏、滑入、淡入、停止动画、节点操作、添加对象、清空节点

样式表属性操作.css $("div").css({'width':100,'height':100,'background':'red'}); $("div").css("background","pink"); 类操作 .addClass添加类   $("div").addClass("class"); .removeClass删除类   $("div).removeCla

easyui datagrid 动态添加columns属性

公司在项目设计的时候,有一个需求,就是查出来的表的字段不唯一,一张表的字段可能是三个,也可能是五个,但是却要把它显示到页面,这个给我做ui的带来一点麻烦.因为以前一般用easyui 的datagrid里的columns属性都是对应数据库表里的字段,现在字段都不知道,怎么用datagrid显示数据呢?本人在这里介绍最笨的办法,就是拼接出columns 属性的格式,我承认,我的办法效率不高,但是当你无从下手的时候,,这未尝不是解决问题的办法,当然在解决这个问题之前,我也百度了一下,试了一些办法,有的

将HTML字符转换为DOM节点并动态添加到文档中

将HTML字符转换为DOM节点并动态添加到文档中 将字符串动态转换为DOM节点,在开发中经常遇到,尤其在模板引擎中更是不可或缺的技术. 字符串转换为DOM节点本身并不难,本篇文章主要涉及两个主题: 1 字符串转换为HTML DOM节点的基本方法及性能测试 2 动态生成的DOM节点添加到文档中的方法及性能测试 本文的示例: 有如下代码段 <!DOCTYPE html> <html lang="en"> <head> <meta charset=&

ios动态添加属性的几种方法

http://blog.csdn.net/shengyumojian/article/details/44919695 在ios运行过程中,有几种方式能够动态的添加属性. 1-通过runtime动态关联对象 主要用到了objc_setAssociatedObject,objc_getAssociatedObject以及objc_removeAssociatedObjects [objc] view plain copy //在目标target上添加关联对象,属性名propertyname(也能用

javascript动态添加html节点

之前一直没怎么接触需要动态添加和删除html节点的项目,这次项目中用到了,也学习了. 在一个<table id="tab">标签中添加一个<tr id="tr">标签,<tr>标签里面包含4个<td>标签 function insertTr() { tr = document.createElement("tr"); html = "<td></td>"+

Unity3D实践系列05,为GameObject添加额外属性

在Unity中,通常通过脚本为GameObject添加额外的属性.具体有2种方式:一种是通过硬编码为脚本字段赋值,另一种是通过反射在运行时给脚本字段赋值. 脚本通过字段硬编码为GameObject添加额外的属性 创建一个空的GameObject. 点击"Hierarchy"窗口下的GameObject,看到如下的"Inspector"窗口. 现在我们要为这个GameObject增加一个Count属性,该怎么做呢? 在"Project"窗口下的&q

一文带你彻底明白如何实现动态添加子节点及修改子节点属性

? 终于看完了官方的教程,开始用 Cocos Creator 做第一个游戏——<消灭病毒-重力版>(PS:等做完之后会出一个完整的教程,敬请期待┗( ▔, ▔ )┛!),可是第一步就遇到了坑,本来想动态的通过预制件来添加病毒节点,并修改病毒的血量,可是添加节点之后无论如何都不能对节点的属性进行修改,查了半天资料原来是没有获取子节点的组件,白白浪费了两个小时,这就是自学的弊端吧,有一个好的老师真的是太重要了!为了让大家少走弯路,今天写一个 Demo 来教大家如何实现动态添加子节点及修改子节点属性

Hadoop动态添加/删除节点(datanode和tacktracker)

总的来说,正确的做法是优先通过配置文件,再在具体机器上进行相应进程的启动/停止操作. 网上一些资料说在调整配置文件的时候,优先使用主机名而不是IP进行配置. 总的来说添加/删除DataNode和TaskTracker的方法非常相似,只是操作的配置项和使用的命令有微小差异. 1. DataNode 1.0 配置文件 在master/namenode下修改配置文件conf/mapred-site.xml. 关键参数dfs.hosts和dfs.hosts.exclude. 注意:不同hadoop版本的