从下面的XML,我正在尝试提取IP,但这不起作用..我不确定我在哪里出错
declare @xml xml
set @xml='<auditElement>
<RequestOrigination>
<IP>20.20.20.20</IP>
</RequestOrigination>
</auditElement>'
我的尝试
select
b.value('@IP[1]','nvarchar(100)')
from @xml.nodes('/auditElement/RequestOrigination') as org(b)
需要的输出:
IP
20.20.20.20
不需要.nodes()
...
并且不需要@
之前IP
。这将尝试读取称为“ IP”的属性,但是您正在读取text()
*元素的内容(-node)。您的代码适用于以下情况:
<SomeElement IP="20.20.20.20">
您可以像下面这样使用.value()
full XPath
:
declare @xml xml
set @xml='<auditElement>
<RequestOrigination>
<IP>20.20.20.20</IP>
</RequestOrigination>
</auditElement>';
SELECT @xml.value('(/auditElement/RequestOrigination/IP/text())[1]','varchar(20)');
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句