我是 OPENXML 的新手,并且有 90% 的我想做的工作......坚持这一点:
<ReportHost name="411.114.42.42">
<HostProperties>
<tag name="HOST_END">Wed Nov 11 20:48:43 2015</tag>
<tag name="LastAuthenticatedResults">8675309</tag>
<tag name="Credentialed_Scan">true</tag>
<tag name="policy-used">AWT v6</tag>
<tag name="ssh-auth-meth">MyPassword</tag>
<tag name="ssh-login-used">MyLogin</tag>
<tag name="local-checks-proto">ssh</tag>
<tag name="host-ip">411.114.42.42</tag>
<tag name="HOST_START">Wed Nov 11 20:00:01 2015</tag>
</HostProperties>
</ReportHost>
我想要的结果:
Wed Nov 11 20:48:43 2015
8675309
TRUE
AWT v6
MyPassword
MyLogin
ssh
411.114.42.42
Wed Nov 11 20:00:01 2015
我能够获取名称值(“Host_end”等),但不能获取内容。
我的查询:
Select *
from OPENXML (@hdoc,'/ReportHost/HostProperties/tag',1)
WITH (
name varchar (500)
)
如果可能的话,我想坚持使用 OPENXML,因为我刚刚花了一天时间学习它并进入最后一步。
如果我提供了足够的信息,请告诉我。
您需要查询
nodetype
3 以获取元素文本。我xpath
稍微改变了你的表达,所以它只返回节点文本OPENXML(事务处理 SQL)
SchemaDeclaration
使用 a扩展ColPattern
以指定不同于您从 的默认行为中获得的 XPathColName
。您正在
tag
节点上切碎,因此.
指定当前节点值,并且如果您使用@
指定您想要的属性,则不必关心flags
参数 toOPENXML
。我建议您花一些时间研究XML 数据类型。在这种情况下,相同的查询将如下所示。