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;
using System.Windows.Forms; namespace ConsoleApplication27
{
class Program
{
[STAThread]
static void Main(string[] args)
{
var folderPath = AppDomain.CurrentDomain.BaseDirectory + "..\\..\\Mapping";
FolderBrowserDialog fbd = new FolderBrowserDialog();
if (fbd.ShowDialog() == DialogResult.OK)
{
folderPath = fbd.SelectedPath;
} var files = System.IO.Directory.GetFiles(folderPath); foreach (string file in files)
{ if (!file.Contains(".hbm.xml")) { continue; }
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")[];
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);
MessageBox.Show("提示", "成功");
} }
}
}

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

  1. python装饰器、继承、元类、mixin,四种給类动态添加类属性和方法的方式(一)

    介绍装饰器.继承.元类.mixin,四种給类动态添加类属性和方法的方式 有时候需要給类添加额外的东西,有些东西很频繁,每个类都需要,如果不想反复的复制粘贴到每个类,可以动态添加. # coding=u ...

  2. 第六种方式,python使用cached_property缓存装饰器和自定义cached_class_property装饰器,动态添加类属性(三),selnium webdriver类无限实例化控制成单浏览器。

    使用 from lazy_object_proxy.utils import cached_property,使用这个装饰器. 由于官方的行数比较少,所以可以直接复制出来用自己的. class cac ...

  3. hadoop集群中动态添加新的DataNode节点

    集群中现有的计算能力不足,须要另外加入新的节点时,使用例如以下方法就能动态添加新的节点: 1.在新的节点上安装hadoop程序,一定要控制好版本号,能够从集群上其它机器cp一份改动也行 2.把name ...

  4. 导航栏动态添加act属性

    最近做了一个网站,需要设置导航栏的act属性,这里需要用到addClass以及removeClass: $('#topName li').removeClass('active'); $(this). ...

  5. vue 动态添加对象属性

    昨天使用vue发现直接给对象添加属性,并不能触发响应更新,后来看文档发现要通过this.$set 函数动态添加才可用,eg: this.$set( obj, key, data)

  6. jquery 操作动态添加的元素

    动态添加的元素,无法侦听到事件,写法如下: 使用函数.on 格式为: $(父元素).on('event','selector',function(){ //do something }) 例如 < ...

  7. python__高级 : 动态添加 对象属性, 类属性, 对象实例方法, 类静态方法, 类方法

    给对象添加实例属性,可以直接这样  t.age = 18   ( 假设 t = Test() )  给类添加类属性 , 也可以直接这样  Test.age = 18 那给对象添加实例方法,可以在类外面 ...

  8. vue中如何动态添加readonly属性

    动态绑定input的readonly属性 1 <inpu :readonly="status ? false : 'readonly'"> status 为 false ...

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

    样式表属性操作.css $("div").css({'width':100,'height':100,'background':'red'}); $("div" ...

随机推荐

  1. GDI与OpenGL与DirectX之间的区别

    图形编程的几种技术对比: GDI,图形设备接口,MS开发的通用的windows系统图形编程接口,功能强涉及面广,一般的编程都用它.但是用来做多媒体开发就差强人意了 OPENGL是SGI开发的一套三维图 ...

  2. IQ信号理解

    可参考http://wenku.baidu.com/link?url=Y3plyK9lgl96QowljJkWhgVaUGbH11j178DkId_vcl9z1V5cjl9ycTiB4Ym4iaypL ...

  3. 转载 eclipse中的include设置

    备注:在10.1版的niosii使用的eclipse中设置的方法是右键->properties->c/c++general->path and symbols->include ...

  4. UniDac 使用日记(转)

    UniDAC使用日记 1.        UniQuery默认状态为行提交,使用前根据需要设置readonly或cachedupdates属性 2.        UniQuery.Filter默认大 ...

  5. 【转】Jmeter做功能测试的优点和不足

    利用Jmeter做功能测试有以下优点: ●    不依赖于界面,如果服务正常启动,传递参数明确就可以添加测试用例,执行测试 ●    测试脚本不需要编程,熟悉http请求,熟悉业务流程,就可以根据页面 ...

  6. 【转】JMeter基础之——录制脚本

    Jmeter 是一个非常流行的性能测试工具,虽然与LoadRunner相比有很多不足,比如:它结果分析能力没有LoadRunner详细:很它的优点也有很多: ● 开源,他是一款开源的免费软件,使用它你 ...

  7. mysql实战优化之四:mysql索引优化

    0. 使用SQL提示 用户可以使用use index.ignore index.force index等SQL提示来进行选择SQL的执行计划. 1.支持多种过滤条件 2.避免多个范围条件 应尽量避免在 ...

  8. 在Altium Designer 9中如何实现元器件旋转45°放置

    方法一: 双击元件手工输入指定角度. 方法二: 在Preferences >> PCB Editor >> General中将Rotation Step(旋转的步进值)由90改 ...

  9. fiddler代理hosts配置

    1 需求背景 fidder开启后,C:\Windows\System32\drivers\etc\hosts配置失效问题:fiddler本身代理hosts配置表,修改后,可以省去在手机等代理使用者的系 ...

  10. Maven Assembly打包提示[WARNING] transitive dependencies if any will not be available

    maven assembly打包出现错误 [WARNING] The POM for com.flink.xxr:0.0.1-SNAPSHOT is invalid, transitive depen ...