0
我得到了一種特殊的XML格式。使用xquery後我得到了奇怪的結果。結果不是一個XML字符串。如何解析這種XML格式?如何使用Xquery來解析<![CDATA [<DATA>;收到奇怪的結果
declare @xml xml
set @xml='<Data>
<![CDATA[ <DATA>
<NVPAIRS>
<PAIR><NAME>status</NAME><VALUE>100</VALUE></PAIR>
<PAIR><NAME>date</NAME><VALUE>20001224</VALUE></PAIR>
<PAIR><NAME>name</NAME><VALUE>Tom</VALUE></PAIR>
</NVPAIRS>
</DATA>
]]>
</Data>
'
select x.query('.')
from @xml.nodes('//Data') as T(X)
結果我得到:
<Data>
<DATA>
<NVPAIRS>
<PAIR><NAME>status</NAME><VALUE>a</VALUE></ PAIR>
<PAIR><NAME>date</NAME><VALUE>20001224</VALUE> </PAIR>
<PAIR><NAME></NAME><VALUE>12%3A30</VALUE></ PAIR>
</NVPAIRS>
</DATA>
</Data>
這是預期的結果 - CDATA標記中的內容不是XML內容,而是文本,因此所有尖括號都被引用。你必須提取文本內容並再次解析它。更好的選擇是解釋這個破碎的XML的作者,他最好發佈適當的XML。 –
如何提取文本內容並使用Xquery解析它? – Mike