尝试使用XML节点从XML提取IP

时间:2018-10-03 18:16:43

标签: sql-server xml tsql

从下面的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

2 个答案:

答案 0 :(得分:2)

您快到了! 2个小错误..

 declare @xml xml

set @xml='<auditElement>
  <RequestOrigination>
    <IP>20.20.20.20</IP>
     </RequestOrigination>
</auditElement>'

SELECT @xml

select 
 b.value('IP[1]','nvarchar(100)')
 from  @xml.nodes('//auditElement/RequestOrigination') as org(b)

答案 1 :(得分:2)

不需要function app() { // do some stuff run(); // if `run` contains `await`, does execution pause here? // what if `app` was async? // do some more stuff } ...

.nodes()之前不需要@。这将尝试读取称为“ IP”的属性,但是您正在读取*元素的内容(IP节点)。您的代码适用于以下情况:

text()

您可以将<SomeElement IP="20.20.20.20"> 与完整的.value()一起使用,如下所示:

XPath