sql server - Parsing XML from returned field in SQL -


i have field called xml contains data need extract. contents of xml field this:

<p>   <k>attribute name</k>   <v>attribute value</v> </p> <p>   <k>attribute name 2</k>   <v>attribute value 2</v> </p> <p>   <k>attribute name 3</k>   <v>attribute value 3</v> </p> <p>... , on ...</p> 

is there way can write query extract attribute value 2 in sql? normal practice vendors?

edit:

i'm able query off xml field using m.[xml].value('/p[2]','varchar(max)' cannot figure out way grab direct neighbor of node key looking for. example, want grab <v>attribute value 2</v> search off <k>attribute name 2</k>

you did not accept answer yet, might be, existing answers did not help...

if correctly, want read value (=<v>) given key (=<k>). try this:

declare @xml xml =    n'<p>       <k>attribute name</k>       <v>attribute value</v>     </p>     <p>       <k>attribute name 2</k>       <v>attribute value 2</v>     </p>     <p>       <k>attribute name 3</k>       <v>attribute value 3</v>     </p>';  declare @search nvarchar(100)=n'attribute name 2';  select @xml.value(n'(/p[k/text()=sql:variable("@search")]/v/text())[1]',n'nvarchar(max)'); 

the key-name looking set variable @search.

the xquery looking <p>, there <k> has got text looking for.

then <v> below <p> read , returned.


Comments

Popular posts from this blog

php - Vagrant up error - Uncaught Reflection Exception: Class DOMDocument does not exist -

vue.js - Create hooks for automated testing -

Add new key value to json node in java -