2015-01-16 2 views
1

Я пытаюсь вставить несколько узлов в свой XML-файл, основываясь на нескольких условиях.Необходимо вставить теги XML на основе условий

Это мой XML

<root> 
<child name="abc"> 
<child name="xyz"> 

</root> 

Так что теперь мое состояние Somthing как это ..

if(root/child[name="xyz"]) insert child2 under that tag 

Так что мой окончательный XML должен выглядеть следующим образом

<root> 
<child name="abc"> 
<child name="xyz"> 
<child2></child2> 

</root> 

Нужна помощь программного для достижения этой цели.

+0

использование Уровеньвыша> createelement –

+1

Ваш XML не очень хорошо образован. Пожалуйста исправьте. (Добавить закрывающие теги для первых двух «дочерних» элементов - есть несколько способов, которыми вы могли бы это сделать.) – kjhughes

ответ

0
string xml = @"<root> 
    <child name='abc'></child> 
    <child name='xyz'></child> 
</root>"; 

XDocument doc = XDocument.Parse(xml); //replace with xml file path 
doc.Root 
    .Elements("child") 
    .Single(c => (string) c.Attribute("name") == "xyz") 
    .AddAfterSelf(new XElement("child2", "")); 

Console.WriteLine(doc.ToString()); 

возвращает

<root> 
    <child name="abc"></child> 
    <child name="xyz"></child> 
    <child2></child2> 
</root>