Добавить childnode в XML документ - PullRequest
0 голосов
/ 27 февраля 2012

Я пытаюсь найти файл XML и, если определенная зависимость не найдена, добавить эту зависимость в конец <dependencies>.Мой XML-файл выглядит так:

    <config>
      <settings>
      ...
      </settings>
<dependencies>
<dependency key="#0" type="Windows" name="Microsoft Windows XP" namepart="false"/>
    .
    .
    .
<dependancy key="#4" type="Windows" name="Microsoft Windows 7" namepart="false" />
</dependencies>

Теперь я хотел бы добавить 5-ю зависимость через код.(<dependancy key="#5" type="Windows" name="Microsoft Windows NT" namepart="false" />) Как бы я поступил так.Я попытался использовать XMLElement и добавить его в конец.

1 Ответ

0 голосов
/ 27 февраля 2012

XML-документ не упорядочен. Вы можете проверить наличие определенного узла, обычно используя атрибут ключа.

    XmlDocument doc=new XmlDocument();
    doc.LoadXMl(youxmlstring);
    XmlNode node=doc.SelectSingleNode("//dependancy/@name='Microsoft Windows NT'");
    if (node==null)
    {
            //no such node
            //insert new node
    }

Для вычисления значения нового ключевого атрибута вы можете использовать что-то вроде этого

    //assuming key is currectly ordered
    int nextKey=doc.SelectNodes("//dependancy").Count;      

см.

http://www.codeproject.com/Articles/9494/Manipulate-XML-data-with-XPath-and-XmlDocument-C

...