Выполнение запроса 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>

Шаблон трансформации:

<?xml version="1.0" encoding="windows-1251"?><xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:template match = "*"> <xsl:apply-templates /> </xsl:template> <xsl:template match = "/"> <html> <body> <table border="1" style="table-layout:fixed" width="600"> <tr bgcolor="teal"> <th><font color="white">Имя</font></th> <th><font color="white">Фамилия</font></th> <th><font color="white">Адрес</font></th> </tr> <xsl:for-each select="my_root/Авторы"> <tr> <td><font color="teal"><xsl:value-of select="@Имя"/></font></td> <td><font color="teal"><xsl:value-of select="@Фамилия"/></font></td> <td><font color="teal"><xsl:value-of select="@Адрес"/></font></td> </tr> </xsl:for-each> </table> </body> </html> </xsl:template> </xsl:stylesheet>

Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: