public void AddNodeToXml(string helpid, string fileName)
{
const string STR_EXPRESSION = "/Form/Controls/Control";
XPathDocument doc = null;
try
{
doc = new XPathDocument(fileName);
}
catch (Exception e)
{
MessageBox.Show(e.Message);
}
if (doc != null)
{
XPathNavigator navigator = doc.CreateNavigator();
XPathNodeIterator localIterator = navigator.Select(STR_EXPRESSION);
while (localIterator.MoveNext())
{
if (localIterator.Current != null)
{
if (localIterator.Current.Name.Equals("Control"))
{
localIterator.Current.MoveToFirstAttribute();
if (localIterator.Current.Value.Equals(helpid))
{
localIterator.Current.MoveToParent();
localIterator.Current.CreateAttribute(string.Empty, "NewAttribute", string.Empty, "value");
}
}
}
}
}
}
私のXML構造は、私は - オンライン・クロックcotrol name属性の値が「helpidに」であれば制御ノードに新しい属性を追加したいSTR_EXPRESSION でshowようですSystem.NotSupportedExceptionをスローし、私はcreateAttributeを()このメソッドを使用してみましたSystem.NotSupportedExceptionとして例外が発生します。createAttributeをメソッドが
あなたが使用していない理由を ' XDocument'とLINQ to XML? – Oded
理由がない、これはもっと簡単だと思った –