0
SQL Serverを使用してXMLでノードにアクセスしようとしています。SQL ServerクエリからXMLノードを取得
私がnullを取得しています 私はノードすなわち "情報" を印刷したいCREATE TABLE temp.testXML(ID INT, xmlinput XML NULL);
INSERT INTO temp.testXML
VALUES (1, '<root><node1><lang>English</lang></node1><innernode><info>20170117T022113</info></innernode></root>')
"20170117T022113"
SELECT
t.id,
x.XmlCol.value('(/innernode/info)[1]', 'VARCHAR(100)') AS dt
FROM
[temp].[testxml] as t
CROSS APPLY
t.rawxml.nodes('/root') as x(XmlCol)
。
ノード値はどのように取得できますか?
おかげ MR
「/」を使用するときと使用しないときをもう少し明確にしました。ありがとうございました – user2726975
@ user2726975 - xmlの専門家ではありませんが、 'value'メソッドでは' XQuery'(最初のパラメータ)が 'root'で始まるときに'/'で始まっています。 'value('(/ root/innernode/info)[1] '、' VARCHAR(100) ')のようなもの –
@ user2726975単純な言い方をすれば、1スラッシュ= * 1レベル下に移動*、2スラッシュ= *以下の任意のノードを見つける*、コンテキストノード*に相対的なスラッシュ= *はない。あなたはルートから*ナビゲート*するよりも、あなたがパスを下に(そして上/側に)移動するよりも始めます。現在の* position *はコンテキストノード*です。どのパスもそこから始まります。最初のルートノードはコンテキストノードです。ここでは、[包括的な概要](https://www.bennadel.com/blog/2142-using-and-expressions-in-xpath-xml-search-directives-in-coldfusion.htm) – Shnugo