Potrebujem SQL skript, ktorý bude ťahať XML reťazec z DB [varchar(max)], kontrolu a aktualizáciu to , ak sa to hodí konkrétnej situácii.
Predstavte si, že moje xml je v nasledovnom formáte:
<root>
<level1>
<level2>
<level3 />
<level3 />
</level2>
</level1>
<level1>
<level2>
<level3>
<level4>
<level5>
<level6 here="now is the time for XYZ">
<options>
<option this="that" />
<option me="you" />
</options>
</level6>
</level5>
</level4>
</level3>
</level2>
</level1>
<level1>
<level2>
<level3>
<level4>
<level5>
<level6 here="this one is not of interest">
<options>
<option this="that" />
<option me="you" />
</options>
</level6>
</level5>
</level4>
</level3>
</level2>
</level1>
<level1>
<level2>
<level3>
<level4>
<level5>
<level6 here="now is the time for ABC">
<options>
<option this="that" />
<option me="you" />
<option here="now" />
</options>
</level6>
</level5>
</level4>
</level3>
</level2>
</level1>
</root>
Takže, čo chcem urobiť, je aktualizovať všetky prvky, ktorého názov je "level6" a ktoré majú atribút s názvom "tu", ktorého hodnota sa začína s "teraz je čas". Tak, že by sa zápas len dva prvky vyššie.
Ale, to nie je len výber kritérií. Zoznam možností nesmie obsahovať <option here="now" />
. Tak, že by nás nechať len jeden prvok, ktorý chcete aktualizovať.
<level6 here="now is the time for XYZ">
<options>
<option this="that" />
<option me="you" />
</options>
</level6>
Na tento prvok, potom som chcete pridať chýbajúce <option here="now" />
tak , že sa stáva:
<level6 here="now is the time for XYZ">
<options>
<option this="that" />
<option me="you" />
<option here="now" />
</options>
</level6>
Tak, konečný výsledok by mal byť:
<root>
<level1>
<level2>
<level3 />
<level3 />
</level2>
</level1>
<level1>
<level2>
<level3>
<level4>
<level5>
<level6 here="now is the time for XYZ">
<options>
<option this="that" />
<option me="you" />
<option here="now" /> // <- this one new
</options>
</level6>
</level5>
</level4>
</level3>
</level2>
</level1>
<level1>
<level2>
<level3>
<level4>
<level5>
<level6 here="this one is not of interest">
<options>
<option this="that" />
<option me="you" />
</options>
</level6>
</level5>
</level4>
</level3>
</level2>
</level1>
<level1>
<level2>
<level3>
<level4>
<level5>
<level6 here="now is the time for ABC">
<options>
<option this="that" />
<option me="you" />
<option here="now" />
</options>
</level6>
</level5>
</level4>
</level3>
</level2>
</level1>
</root>
Predpokladajme, že môžem čítať údaje z DB do reťazca, a že viem, ako aktualizovať DB, takže je to naozaj ako na manipuláciu s xml reťazec v SQL (SQL Server).