您的位置:首页 > 移动开发

hibernate mapping文件中 xmlns会导致linq to xml 查询不到对应的节点

2016-04-30 12:42 411 查看
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)
{
//<hibernate-mapping xmlns1="urn:nhibernate-mapping-2.2">
//注意hibernate mapping文件中 xmlns会导致linq to xml 查询不到对应的节点,所以我吧xmlns改成xmlns1,事后自己再全文替换回来即可
var path = AppDomain.CurrentDomain.BaseDirectory + "..\\..\\Mapping\\PosPositionProductMapping2.hbm.xml";

var root = XElement.Load(path);

var cps = root.Elements("class").Elements("property").ToList();
bool find1 = false;
bool find2 = false;
cps.ForEach(c =>
{
string columnValue = c.Attribute("column").Value;
if (columnValue.ToLower().Contains("CREATED_EMPLOYEE_NAME".ToLower()))
{

find1 = true;
}
if (c.Attribute("column").Value.ToLower().Contains("CREATED_EMPLOYEE_ID".ToLower()))
{

find2 = true;
}
});
XElement cls = root.Element("class");
if (find1==false)
{

XElement xe = new XElement("property",
new XAttribute("name","CreatedEmployeeName"),
new XAttribute("column", "CREATED_EMPLOYEE_NAME"),
new XAttribute("update","false")

);

cls.Add(xe);

}
if (find2==false)
{

XElement xe = new XElement("property",
new XAttribute("name", "CreatedEmployeeId"),
new XAttribute("column", "CREATED_EMPLOYEE_ID"),
new XAttribute("update", "false")

);

cls.Add(xe);

}
root.Save(path);

}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: