Help!SQL xQueryを使用してXMLファイルから値を選択する際にヘルプが必要
私はWinSCPによって生成されたXMLログファイルを持っています。その内容に基づいてアラートをトリガーしたいと思います。私はXMLがどのようにフォーマットされているかについては何のコントロールもしていません。
xQueryを使用して値を読み取ろうとしていますが、運がないです。私が得るのは、0行の列見出しだけです。 OPENXMLとVBA ImportXMLも試しましたが、どちらのメソッドもNULLを返します。
DECLARE @XML XML =
'<?xml version="1.0" encoding="UTF-8"?>
<session xmlns="http://winscp.net/schema/session/1.0" name="[email protected]" start="2017-11-09T18:00:09.051Z">
<upload>
<filename value="e:\MyUploadFile.txt" />
<destination value="/HostFolder/MyUploadFile.txt" />
<result success="true" />
</upload>
<touch>
<filename value="/HostFolder/MyUploadFile.txt" />
<modification value="2017-11-09T18:00:08.000Z" />
<result success="true" />
</touch>
</session>
'
SELECT
Sess.Upload.value('../filename[1]','varchar(250)') [Filename]
,Sess.Upload.value('../destination[1]','varchar(250)') [Destination]
,Sess.Upload.value('../result[1]','varchar(250)') [Result]
FROM
@XML.nodes ('/session/upload') AS Sess(Upload)
私が投稿したコードでは、ログファイルからxmlを変更して資格情報を削除し、誤って終了クォートを削除しました。しかし、それは私の問題ではありませんでした。 XML名前空間の宣言が私の問題を解決しました。ありがとう! – Dan