XMLを使用していますが、問題があります。
xmlは次のようになります。
<tagvalues>
<tagvalue>
<tag>Data.Barcode</tag>
<value>True</value>
</tagvalue>
<tagvalue>
<tag>Data.DateStampFirstScale</tag>
<value>20180111</value>
</tagvalue>
<tagvalue>
<tag>Data.DateStampLastScale</tag>
<value>20180111</value>
</tagvalue>
<tagvalue>
<tag>Data.Dot</tag>
<value>False</value>
</tagvalue>
<tagvalue>
<tag>Data.Hangtab</tag>
<value>False</value>
</tagvalue>
<tagvalue>
<tag>Data.Scale_x.Scale_0.Deviation</tag>
<value>0</value>
</tagvalue>
<tagvalue>
<tag>Data.Scale_x.Scale_0.DeviationHigh</tag>
<value>False</value>
</tagvalue>
<tagvalue>
<tag>Data.Scale_x.Scale_0.DeviationLimitHigh</tag>
<value>0</value>
</tagvalue>
</tagvalues>
そして現在、私はこのコードでデータを取得しています:
@data.value('/tagvalues[1]/tagvalue[3]/value[1]', 'nvarchar(100)')
私が抱えている問題は、順序が変更されることがあるということです。つまり、再構成する必要があります。
XMLテキストを次のように一時テーブルに変換することはできませんか?
Tag Value
--------------------------------------------------
Data.Barcode TRUE
Data.DateStampFirstScale 20180111
Data.DateStampLastScale 20180111
Data.Dot FALSE
Data.Hangtab FALSE
Data.Scale_x.Scale_0.Deviation 0
Data.Scale_x.Scale_0.DeviationHigh FALSE
Data.Scale_x.Scale_0.DeviationLimitHigh 0
XQueryを試してください。 .nodes()
select n.value('tag[1]', 'varchar(max)') [Tag],
n.value('value[1]', 'varchar(max)') [Value]
from @xml.nodes('tagvalues/tagvalue') as p(n)
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加