Я подозреваю, что решение моей проблемы будет очень простым с LINQ to XML, но я довольно новичок в этом и, похоже, наткнулся на стены.(Кроме того, я не смог найти достойного учебника, который бы охватывал подобные случаи с моими, поэтому, если вы можете указать мне на что-то там, это очень ценится!)
Что мне нужно сделать, это:
У меня есть файл XML, из которого я должен прочитать, который вы можете найти ниже.Обычно в файле только одна ветвь, которая содержит несколько заказов.Каждый заказ имеет уникальный код.Эти заказы содержат несколько параметров, каждый из которых также имеет уникальный код.
Мне дан код заказа и код параметра, и теперь я должен найти правильный заказ, и в пределахэтот порядок правильный параметр.
Для этого одного параметра мне нужно обновить поля «numericValue» и «stringValue». Это сложная часть для меня: из-за двух условий, указанных выше, похоже, что мне нужно ввести две промежуточные переменные, каждая из которых имеет одно условие в where
и второй, построенный на первом.
Затем мне нужно записать весь XML-файл обратно на диск, теперь содержащий мои два небольших изменения. С моими промежуточными переменными, описанными выше, сборка всей вещи снова, как это, выглядит для меня как отдельный тернистый путь.
Итак, вот мой XML-файл:
<xyz version="1.2.3"
xmlns="http://www.mycompany.com/xyz"
xmlns:abc="http://www.mycompany.com/xyz/abc">
<header>
<!-- some unimportant stuff -->
</header>
<body>
<abc:abc version="1.3">
<abc:branches>
<abc:branch>
<!-- some unimportant stuff -->
<abc:orders>
<abc:order>
check this-> <abc:orderCode>FOO</abc:orderCode>
<abc:orderParameters>
<abc:orderParameter>
and this-> <abc:parameterCode>BAR</abc:parameterCode>
<abc:billedValue>
<abc:value>
then change -> <abc:numericalValue>10</abc:numericalValue>
these two -> <abc:stringValue>ten</abc:stringValue>
</abc:value>
</abc:billedValue>
</abc:orderParameter>
<abc:orderParameter>
<!-- similar contents -->
</abc:orderParameter>
<!-- some more orderParameter instances -->
</abc:orderParameters>
</abc:order>
<abc:order>
<!-- similar contents as above -->
</abc:order>
<!-- some more order instances here -->
</abc:orders>
</abc:branch>
</abc:branches>
</abc:abc>
</body>
</xyz>
Как я уже сказал, я подозреваю, что решение довольно простое, но я не могу понять это прямо сейчас (особенно ту часть, где я должен написать все это обратно).