[ASP/SQL] FOR XML filteren met XPath

Pagina: 1
Acties:

  • _Thanatos_
  • Registratie: Januari 2001
  • Laatst online: 15-05 14:44

_Thanatos_

Ja, en kaal

Topicstarter
Ik heb een applicatie waarom op een gegeven moment vanuit SQL server een stuk XML gegenereerd wordt. Ik gebruik hiervoor de FOR XML EXPLCIT clause, en dat werkt allemaal prima. Nu stuiten we op het feit dat de returnde XML gefilterd moet kunnen worden dmv een XPath query. Ter illustratie, het volgende XML bestand:
code:
1
2
3
4
<node1>
<node2><node3>123</node3></node2>
<node2><node3>234</node3></node2>
</node1>

Moet met behulp van deze XPath:
code:
1
/node1/node2/node3=123

als het ff kan de volgende XML teruggeven:
code:
1
2
3
<node1>
<node2><node3>123</node3></node2>
</node1>


Ik snap best dat die XPath alleen die ene node3 selecteert, maar dat wil ik dus niet. Het als het nog ff kan, wil ik dat SQL server het voor me doet, maar dat hoeft an sich niet per se.

De code om de XML te genereren is als volgt:
ASP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Set Cmd = Server.CreateObject("ADODB.Command")

//SqlConn is een bestaande verbinding met de SQL server
Cmd.ActiveConnection = SqlConn

//Downloader.Query bevat de FOR XML queries
Cmd.CommandText = "SELECT '<?xml version=""1.0""" & _
   "encoding=""utf-8""?>'" & vbNewLine & Downloader.Query

Set Stream = Server.CreateObject("ADODB.Stream")
Stream.Open
Cmd.Properties("Output Stream") = Stream
Cmd.Properties("Output Encoding") = "utf-8"
Cmd.Execute , , 1024
Stream.Type = adTypeBinary


Wat denken jullie ervan?

日本!🎌


  • sig69
  • Registratie: Mei 2002
  • Laatst online: 14:29
Wat is het verschil tussen:
code:
1
2
3
4
<node1>
<node2><node3>123</node3></node2>
<node2><node3>234</node3></node2>
</node1>

en:
code:
1
2
3
<node1>
<node2><node3>123</node3></node2>
</node1>

??

Alleen dat de tweede node 2 verwijdert is? Lijkt me dat je query niet klopt dan.

Roomba E5 te koop


  • _Thanatos_
  • Registratie: Januari 2001
  • Laatst online: 15-05 14:44

_Thanatos_

Ja, en kaal

Topicstarter
Je snapt het niet... ik wil gewoon dat met een XPath query een bepaalde subset uit de XML gefilterd wordt. Ik gaf dus maar een voorbeeld.

日本!🎌