Link to home
Start Free TrialLog in
Avatar of rcoast
rcoast

asked on

Using XQUERY/Modify to replace a piece of my XML with value from varchar field

I have a table:

MyTable
  config as XML
  title as varchar(255)

In MyTable.config I have XML in the following structure:

<configuration pagetitle="myConfig">
  <column>
    <row>
      <component id="1" type="MyPiece" title="My Title" text="junk" />
    </row>
  </column>
</configuration>

I need a script to inject the value of MyTable.text into the text attribute of the component node in my config XML.

I know this is wrong, but I want to do something similar:
     
UPDATE MyTable SET config.configuration.column.row.component.title = title

I believe I want to use XQUERY and the modify function.


ASKER CERTIFIED SOLUTION
Avatar of Kevin Cross
Kevin Cross
Flag of United States of America image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
You could make it more explicit by replacing //@title with:

/configuration/column/row/component/@title

From my understanding these kinds of operations only can affect one node at a time, so you may need to build function if replacement need is more complex then you can call the user defined function passing XML so that each time it is only operating on one but you can be overall executing on an entire dataset.