备份.net写入proj文件的代码
2015-05-22 16:10:26 访问(1318) 赞(0) 踩(0)
/// <summary>
///
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button1_Click(object sender, EventArgs e)
{
XmlDocument xmlDoc = null;
try
{
string fileName = @"C:\Projectes\eKing\2015\WindowsSeriveStudy\HW\HEW\HEW.csproj";
FileInfo fi = new FileInfo(fileName);
xmlDoc = new XmlDocument();
xmlDoc.Load(fileName);
// MessageBox.Show(xmlDoc.InnerXml);
XmlNode xnProject = XmlNodeFind(xmlDoc.ChildNodes, "Project");
if (xnProject == null)
{
MessageBox.Show("没?有?D找¨°到ì?Project节¨2点ì?。?ê");
return;
}
XmlNode nResult = null;
int findIndex = 0;
foreach (XmlNode xn in xnProject.ChildNodes)
{
if (xn == null)
continue;
if (xn.Name == "ItemGroup")
{
++findIndex;
nResult = xn;
if (findIndex == 2)
{
break;
}
}
}
if (nResult == null)
{
MessageBox.Show("没?有?D找¨°到ì?ItemGroup节¨2点ì?。?ê");
return;
}
string newClassName = "Class" + DateTime.Now.ToString("HHmmss");
string classValue =BlankClass(newClassName);
string classNameFullName = fi.Directory.FullName + "\\" + newClassName + ".cs";
File.WriteAllText(classNameFullName, classValue, System.Text.Encoding.Unicode);
string xmlUrl = "";
// 命¨1名?空?间?使o1用??方¤?法¤?§:êo
// XmlNamespaceManager nsmgr = new XmlNamespaceManager(new XmlDocument().NameTable); //声|¨′明??一°?个?命¨1名?空?间?管¨1理¤¨a器??
//nsmgr.AddNamespace("ns", xmlUrl);//向¨°管¨1理¤¨a器??添?¨a加¨?一°?个?命¨1名?空?间?连¢?接¨?,ê?其?中Dns为a添?¨a加¨?命¨1名?空?间?的ì?名?称?,ê?xmlUrl为a命¨1名?空?间?的ì?链¢??接¨?。?ê两¢?个?参?数oy都?是o?string类¤¨¤型¨a。?ê
//jobNode.SelectSingleNode("ns:trigger/ns:cron", nsmgr)//使o1用??命¨1名?空?间?查¨|找¨°节¨2点ì?。?ê注á?é意°a其?中D的ì?ns和¨ansmgr
//其?实o|ì对?于?¨2你?的ì?问¨o题?a只?需¨¨要°a在¨2创???建?§要°a加¨?入¨?的ì?节¨2点ì?时o?à指?明??一°?个?xmlUrl就¨a可¨|以°?啦¤2:êo
//XmlElement jobElement = xmlDoc.CreateElement("job", xmlUrl);
//如¨?果?添?¨a加¨?的ì?命¨1名?空?间?和¨a所¨′在¨2命¨1名?控?件t一°?致?时o?à,ê?xmlns属o?性?会¨¢自á?动?¥隐°t藏?
//创???建?§一°?个?<book>节¨2点ì?
// XmlElement xe1 = xmlDoc.CreateElement("Compile", "url", xmlDoc.DocumentElement.NamespaceURI);
// 同a?父?节¨2点ì?的ì?xmlns //
string namespaceUrl = "http://schemas.microsoft.com/developer/msbuild/2003";
XmlElement xe1 = xmlDoc.CreateElement("Compile", namespaceUrl);
//设|¨¨置?该?节¨2点ì?genre属o?性?
xe1.SetAttribute("Include", newClassName + ".cs");
nResult.AppendChild(xe1);
XmlAttribute xa = xe1.Attributes["xmlns"];
if(xa!=null)
xe1.Attributes.Remove(xa);
xmlDoc.Save(fi.FullName);
MessageBox.Show("OK");
}
catch (Exception err)
{
MessageBox.Show(err.Message);
}
finally
{
if (xmlDoc != null)
xmlDoc = null;
}
}
/// <summary>
///
/// </summary>
/// <param name="newClassName"></param>
/// <returns></returns>
public string BlankClass(string newClassName)
{
return @"
using System;
using System.Collections.Generic;
using System.Text;
namespace HEW
{
public class " + newClassName + @"
{
public " + newClassName + @"()
{
}
public string c = """";
}
}
";
}
/// <summary>
/// 通a?§过yXML的ì?名?称?找¨°到ì?XML的ì?节¨2点ì?
/// </summary>
/// <param name="xnl"></param>
/// <param name="theName"></param>
/// <returns></returns>
public XmlNode XmlNodeFind(XmlNodeList xnl,string theName)
{
XmlNode theResult = null;
foreach (XmlNode xn in xnl)
{
if (xn.Name == theName)
return xn;
theResult = XmlNodeFind(xn.ChildNodes, theName);
if (theResult != null)
return theResult;
}
return null;
}
}
标签:
备份.net写入proj文件的代码 


上一条:
下一条:
相关评论
发表评论