У меня есть файл XML в следующем форматеЗапросы к XML и обновление некоторых элементов
<?xml version="1.0" ?>
<AA someattrib="xyz">
<BB someOtherAttrib="xyz">
<Title></Title>
<CC>
<myNode rowid="">
<subNode1></subNode1>
<subNode2></subNode2>
<nodeOfInterest></nodeOfInterest>
</myNode >
<myNode rowid="">
<subNode1> </subNode1>
</myNode>
</CC>
</BB>
</AA>
Я хочу использовать Linq, чтобы выбрать один узел под названием «MyNode» где ROWID является конкретным числом, что я будет получать из коллекции в объекте. Когда я получу myNode, я хочу обновить значение дочернего узлаOfInterest, если он присутствует. Если нет, то я хотел бы добавить его. После этого я хочу сохранить файл.
Это то, что у меня есть на данный момент, но это может быть неправильный подход.
foreach (User employee in Users)
{
XPathNavigator node = xNav.SelectSingleNode("/AA/BB/CC/myNode[@rowid = '"+employee.ID.ToString()+"']");
XPathNodeIterator nodeIterator= node.SelectChildren("nodeOfInterest", "");
if (nodeIterator.Count == 1)
{
}
else
{
}
}
Есть ли способ, которым это можно сделать, используя прямое соединение между списком и xmldoc в памяти? Это будет большой список и одинаково большой xml-файл. Я не думаю, что запуск цикла и вызов selectSingleNode является наиболее эффективным способом.
Спасибо за ваши входы
, где «элемент» пришел из него, никогда не был объявлен –
элемент должен быть моимNode, я считаю, – mungflesh
извините. Mungflesh прав. Благодарю. – user20358