Выполнение запроса XPath
С помощью ADO также можно выполнять запросы XPath, правда, пока только на аннотированных XDR-схемах. Вот скрипт на vbs, выполняющий такой запрос:
' Определяем константы ADO.Const adCmdText = 1Const adExecuteStream = &H400 ' Создание объектовDim cmd,conn,cmdStream Dim ie Set ie = CreateObject("InternetExplorer.Application")ie.Navigate "about:blank" Set cmd = CreateObject("ADODB.Command")Set conn = CreateObject("ADODB.Connection")Set cmdStream = CreateObject("ADODB.Stream") conn.Provider = "sqloledb"conn.Open "Data Source=server;Initial catalog=pubs;", "user", "password" cmdStream.Open Set cmd.ActiveConnection = conncmd.CommandType = adCmdText' XPath-запросcmd.CommandText = "Авторы"' Диалект XPath cmd.Dialect = "{EC2A4293-E898-11D2-B1B7-00C04F680C56}"cmd.Properties("Base Path") = "C:\Inetpub\wwwroot\server_pubs"cmd.Properties("Output Stream") = cmdStream' Аннотированная схемаcmd.Properties("Mapping Schema") = "schema\myschema.xml"' Шаблон трансформацииcmd.Properties("XSL") = "\template\first_select.xsl"cmd.Properties("xml root") = "my_root"cmd.Execute , , adExecuteStream Dim strstr = cmdStream.ReadText doloop while ie.Busy ie.Document.writeln CStr(str)ie.Document.close ie.visible = 1 |
Здесь я использовал новую аннотированную схему и шаблон трансформации.
Аннотированная схема:
<?xml version="1.0" encoding="windows-1251" ?><Schema xmlns="urn:schemas-microsoft-com:xml-data" xmlns:sql="urn:schemas-microsoft-com:xml-sql" xmlns:dt="urn:schemas-microsoft-com:datatypes"> <ElementType name="Авторы" sql:relation="authors"> <AttributeType name="Имя" dt:type="string" /> <AttributeType name="Фамилия" dt:type="string" /> <AttributeType name="Адрес" dt:type="string" /> <attribute type="Имя" sql:field="au_fname" /> <attribute type="Фамилия" sql:field="au_lname" /> <attribute type="Адрес" sql:field="address" /> </ElementType></Schema> |
Шаблон трансформации: