Sou novo no OPENXML e tenho 90% do que quero fazer trabalhando... preso nisso:
<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>
Meus resultados desejados:
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
Consigo obter o valor do nome ("Host_end", etc.), mas não o conteúdo.
Minha consulta:
Select *
from OPENXML (@hdoc,'/ReportHost/HostProperties/tag',1)
WITH (
name varchar (500)
)
Eu gostaria de continuar com o OPENXML se possível, já que passei o dia aprendendo e chegando a esta etapa final.
Por favor, deixe-me saber se eu forneci informações suficientes.
Você precisa consultar
nodetype
3 para obter o texto do elemento. Eu mudei umxpath
pouco sua expressão, então ela apenas retorna o texto do nóOPENXML (Transact-SQL)
Estenda o
SchemaDeclaration
com umColPattern
para especificar um XPath diferente do que você obtém do comportamento padrão deColName
.Você está fragmentando no
tag
nó, então.
especifica o valor do nó atual e se você usar@
para especificar que deseja um atributo, não precisa se preocupar com oflags
parâmetro paraOPENXML
.Eu recomendaria que você passasse algum tempo com o tipo de dados XML . A mesma consulta nesse caso ficaria assim.