2015-04-29 7 views
1

Я хочу удалить узел города, имеющий значение, которое я получаю от Request.QueryString["removect"], и под конкретным идентификатором пользователя, скажем, <user Id="4/29/2015 6:11:34 PM">.Как удалить дочерний узел

<Users> 
    <user Id="4/28/2015 11:29:44 PM"> 
    <city>Moga</city> 
    <city>Rupnagar</city> 
    <city>Fatehgarh Sahib</city> 
</user> 
    <user Id="4/29/2015 10:59:06 AM"> 
    <city>Bathinda</city> 
    <city>Pathankot</city> 
    </user> 
    <user Id="4/29/2015 6:11:34 PM"> 
    <city>Pathankot</city> 
    <city>Tarn Taran</city> 

    </user> 
</Users> 

код я использую для достижения этой цели заключается в следующем:

xmlDocument.Descendants("user").Where(x => (string)x.Attribute("Id") == usrCookieId) 
.Elements("city") 
.Where(x => (string)x.Value ==Request.QueryString["removect"]).Remove();        

Код выполняется, но ничего не происходит.

+2

Конечно, ничего не происходит. Вы создаете временный объект и удаляете его. Вы не назначаете его или что-то еще. – Gigi

+0

как я могу выполнить свою цель, чтобы удалить соответствующий узел –

+0

попробовать .equals и игнорировать регистр, показать нам больше кода, как читать xml и прочее. проверьте xmlDocument.Descendants («пользователь»). Где (x => (строка) x.Attribute («Id») == usrCookieId) . Число входов («city») – din

ответ

0

Попробуйте это: -

Я начал с city, как вы можете видеть, то с его родителем, т.е. user фильтрации вашего состояния и так x состоит из городских элементов мы можем фильтровать непосредственно. Теперь я использую First, чтобы получить только первый соответствующий элемент, как только у нас есть тот узел city, который нам нужен, это Remove.

XDocument xmlDocument= XDocument.Load("YourXMLFile"); 
xmlDocument.Descendants("city").First(x => (string)x.Parent.Attribute("Id") == usrCookieId 
      && (string)x == Request.QueryString["removect"]).Remove(); 
xmlDocument.Save("YourXMLFilePath"); 
+0

«Попробуйте это» - не лучший ответ. Это, по крайней мере, то, что мне говорят. –

+0

Для меня исходный код в вопросе работает просто отлично. Никаких изменений не требуется. Вероятно, параметры просто ничего не соответствуют? – Nikolay

+0

@MatthewFrontino, но автор ответа имеет 7.3K rep –

Смежные вопросы