Я новичок в XML и XPath на C#. Вот пример моего XML-документ:Обновление или вставка узла в XML-документе
<root>
<folder1>
...
<folderN>
...
<nodeMustExist>...
<nodeToBeUpdated>some value</nodeToBeUpdated>
....
</root>
Что мне нужно, чтобы обновить значение nodeToBeUdpated, если узел существует или добавить этот узел после nodeMustExist если nodeToBeUpdated нет. Прототипом функции является примерно следующее:
void UpdateNode(
xmlDocument xml,
string nodeMustExist,
string nodeToBeUpdte,
string newVal
)
{
/*
search for XMLNode with name = nodeToBeUpdate in xml
to XmlNodeToBeUpdated (XmlNode type?)
if (xmlNodeToBeUpdated != null)
{
xmlNodeToBeUpdated.value(?) = newVal;
}
else
{
search for nodeMustExist in xml to xmlNodeMustExist obj
if (xmlNodeMustExist != null)
{
add xmlNodeToBeUpdated as next node
xmlNodeToBeUpdte.value = newVal;
}
}
*/
}
Возможно, есть и другой лучший и упрощенный способ сделать это. Любой совет?
Кстати, если nodeToBeUpdated появляется более одного раза в других местах, я просто хочу обновить первый.
Я изменил формат подписи вашего метода, чтобы избавиться от горизонтальной прокрутки. Я ненавижу горизонтальную прокрутку. – Welbog