in SQL Server 2005, I have a codes like this:
declare @.zz varchar(1000)
declare @.x xml
set @.x = '
<root>
<billID>1122</billID>
</root>'
select @.x.query('
for $bi in //billID/text()
return ">"
')
it runs, but it prints ">" not ">", I know maybe "<,>" are keys words in XQuery, but how can i output them?
someone told me to use "\", but it doesn't work.
I used Stylus Studio, it prints ">", very well http://www.stylusstudio.com/xml_download.html
but why Microsoft can't ?
Help please
Do you want it to be in an XML document that can be reparsed? then the serialization will most likely generate > (as you noticed we do). If you load the XML document that contains > into the IE renderer, you will notice that it will show > instead (but you could not reparse the document).
If you want to get a string value for further string processing, you need to cast the XML value to a string type... for example:
declare @.x xml
set @.x = '<root><billID>1122</billID></root>'
select (@.x.query('for $bi in //billID/text()
return ">"
')).value('text()[1]', 'nvarchar(10)')
I hope this helps
Michael
hi, thanks buddy, it's so helpful, thanks so much
But I have already found another way to solve my problem, to use replace in select.. like this:
declare @.x xml
set @.x = '
<root>
<billID>1122</billID>
</root>'
select replace(convert(varchar(1000),@.x.query('
for $bi in //billID/text()
return ">"
')),'>','>')
I used replace ... convert ... , thus replace all the ">" as ">",, nit very smart , but it works
anyway, ur way is the best one, I like it...
Thanks
No comments:
Post a Comment