I recently did something similar. This is for inserting nodes, but they need to be easily changed.
<script language="C#" prefix="test" > <references> <include name="System.Xml.dll" /> </references> <code> <![CDATA[ [TaskName("xmlinsertnode")] public class TestTask : Task { #region Private Instance Fields private string _filename; private string _xpath; private string _fragment; #endregion Private Instance Fields #region Public Instance Properties [TaskAttribute("filename", Required=true)] public string FileName { get { return _filename; } set { _filename = value; } } [TaskAttribute("xpath", Required=true)] public string XPath { get { return _xpath; } set { _xpath = value; } } [TaskAttribute("fragment", Required=true)] public string Fragment { get { return _fragment; } set { _fragment = value; } } #endregion Public Instance Properties #region Override implementation of Task protected override void ExecuteTask() { System.Xml.XmlDocument document = new System.Xml.XmlDocument(); document.Load(_filename); System.Xml.XPath.XPathNavigator navigator = document.CreateNavigator(); navigator.SelectSingleNode(_xpath).AppendChild(_fragment); document.Save(_filename); } #endregion Override implementation of Task } ]]> </code> </script>
source share