Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Преобразование XML в HTML / 25 сообщений из 25, страница 1 из 1
29.04.2008, 20:58
    #35287130
orunbek
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразование XML в HTML
Привет всем.
Требуется помощь профи ;)
Мне нужно создать хранимку, которая будет брать из таблицы определенные данные, обычным SELECT'ом, затем результат возвращать в виде HTML, который сформирован по определенному стилю, XSL.
Как это можно сделать?
Благодарю за любую помощь! Спасибо!
...
Рейтинг: 0 / 0
29.04.2008, 21:57
    #35287214
Mnior
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразование XML в HTML
orunbekXML XML data type или просто VarChar(max) или Text или FOR XML .
orunbekXSLМоно через CLR или OLE Automation. Тока всё это большой изврат. XSLT моно и на клиенте делать и на сервере приложений. А ваще вы абсолютно ничего не сказали о вашей задаче. Даже о версии сиквела.
Куда возвращать?: В потолок? (с) Glory
Просим прощения, но функция чтения мыслей счас проходит только стадию тестирования.
И в конечном итоге - всё это (HTML, XSLT) не проблемы баз данных. Вы скорее всего ошиблись форумом.
...
Рейтинг: 0 / 0
30.04.2008, 07:27
    #35287480
orunbek
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразование XML в HTML
Есть страничка (Classic ASP), который обращается к базе данных через ADO,
вывод в таблицу делается через обычный цикл, построчно пишу в <table><tr>
Если много записей, страничка ооочень медленно открывается, вот и думал
можно ли сделать хранимку, к которой будет обращаться страничка, и хранимка
сама выполняет запрос, затем результат возвращает в виде готового HTML.
Спасибо за внимание
...
Рейтинг: 0 / 0
30.04.2008, 07:28
    #35287481
orunbek
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразование XML в HTML
... дополню
знаю что можно
SELECT * FROM Tbl1 FOR XML AUTO
затем это в HTML думал...
...
Рейтинг: 0 / 0
30.04.2008, 07:39
    #35287487
Alexes
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразование XML в HTML
orunbekЕсли много записей, страничка ооочень медленно открывается, вот и думал
можно ли сделать хранимку, к которой будет обращаться страничка, и хранимка
сама выполняет запрос, затем результат возвращает в виде готового HTML.
А почему именно страничка медленно открывается? Какой участок медленно работает?
...
Рейтинг: 0 / 0
30.04.2008, 07:51
    #35287491
orunbek
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразование XML в HTML
Покажу код, примерно
Код: plaintext
1.
2.
3.
4.
5.
rstTemp.Open "SELECT * FROM Tbl1",cnnMain,adOpenKeyset,adLockReadOnly
Do While Not rstTemp.EOF
      Response.Write("<tr></td>" & rstTemp.Fields("Fld1").Value & "</td></tr>")
      rstTemp.MoveNext
Loop
rstTemp.Close
Сам запрос работает достаточно быстро, секунды
Проблема именно в таком методе вывода в HTML, при больших объемах данных
вывод медленно работает и ресурсы сервака жрет
...
Рейтинг: 0 / 0
30.04.2008, 09:33
    #35287651
Mnior
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразование XML в HTML
orunbekЕсли много записей, страничка ооочень медленно открывается, А может не нуна "много записай". Реализуй механизмы постраничного показа на крайняк.
AJAX - пусть у клиента тормозит, коль он такой "жадный" на данные. :)

Кста, кажись ещё подход у вас не особо, IMHO: страница сначало полностью формирутся, а потом отсылается, что и ведёт к затыкам. Поменяйте принцип (на "немедленную отправку") и "всё пройдёт".

И опять-таки, это не проблемы SQL-я, вы ошиблись форумом.
...
Рейтинг: 0 / 0
30.04.2008, 10:48
    #35287906
orunbek
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразование XML в HTML
Нашел ссылку:
How To Retrieve XML Data by Using a Template File in an ASP Client
Чуть-чуть изменил, ошибка все равно выходит: Error loading XSL stylesheet
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
<?xml version="1.0" encoding="windows-1251"?>
<!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" "http://www.wapforum.org/DTD/xhtml-mobile10.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
</head>
<body>
<!--#include file="include/adovbs.inc" -->
<%
	Dim cnnMain, cmdTemp, cmdStream
	Dim strXMLQuery

	Err.Clear
	strXMLQuery = "<?xml version='1.0' ?>" & vbCrLf & _
		"<root><sql:query xmlns:sql='urn:schemas-microsoft-com:xml-sql'>" & vbCrLf & _
		"SELECT ID, Fld1 FROM Tbl1 ORDER BY Fld1 FOR XML AUTO" & vbCrLf & _
		"</sql:query></root>"

'Init database objects
	Set cnnMain = CreateObject("ADODB.Connection")
	cnnMain.Open "Provider=SQLOLEDB.1.0;Data Source=COMP;Password=sa;User ID=sa;Initial Catalog=Base"
	Set cmdTemp = CreateObject("ADODB.Command")
	Set cmdStream = CreateObject("ADODB.Stream")

'Init stream object
	cmdStream.Open
	cmdStream.Charset = "windows-1251"

'Set Command properties
	cmdTemp.ActiveConnection = cnnMain
	cmdTemp.Commandtext = strXMLQuery
	cmdTemp.Dialect = "{5D531CB2-E6Ed-11D2-B252-00C04F681B71}"
	cmdTemp.Properties("Output Stream") = cmdStream
	cmdTemp.Properties("XSL") = "template.xsl"
'Retrieve XML
	cmdTemp.Execute ,,  1024 
	Response.Write(cmdStream.ReadText(- 1 ))

'DeInit
	If cmdStream.State <>  0  Then cmdStream.Close
	If cnnMain.State <>  0  Then cnnMain.Close
	Set cmdStream = Nothing
	Set cmdTemp = Nothing
	Set cnnMain = Nothing
%>
</body>
</html>

template.xsl:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
<?xml version='1.0' ?>          
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
	<xsl:template match="/">
		<xsl:for-each select="root/Subdealers">
			<xsl:value-of select="@ID"/>
		</xsl:for-each>
	</xsl:template>
</xsl:stylesheet>
...
Рейтинг: 0 / 0
30.04.2008, 10:53
    #35287922
orunbek
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразование XML в HTML
XSL другой:
<?xml version='1.0' ?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
<xsl:template match="/">
<xsl:for-each select="root/Tbl1">
<xsl:value-of select="@ID"/>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
...
Рейтинг: 0 / 0
30.04.2008, 11:42
    #35288068
Mnior
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразование XML в HTML
Так до бана недалеко. Форум по MSSQL!
xsl:for-each - проце-Дурно. xsl:template и xsl:apply-templates
Вы видимо посты не читаете. Всё это скорость тока уменьшит.
Добейтесь, чтоб результат начал выдаваться сразу. Ассинхронно .
Надо мувить топик.
...
Рейтинг: 0 / 0
30.04.2008, 14:42
    #35288767
orunbek
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразование XML в HTML
Если пост не по теме, прошу модеров перенести:
А так проблему решил:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
<?xml version="1.0" encoding="windows-1251"?>
<!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" "http://www.wapforum.org/DTD/xhtml-mobile10.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
</head>
<body>
<!--#include file="include/adovbs.inc" -->
<%
	Dim cnnMain, cmdTemp, cmdStream
	Dim strXMLQuery

	Err.Clear
	strXMLQuery = "<?xml version='1.0' ?>" & vbCrLf & _
		"<root><sql:query xmlns:sql='urn:schemas-microsoft-com:xml-sql'" & vbCrLf & _
		"sql:xsl='template.xsl'>" & vbCrLf & _
		"SELECT ID, Fld1 FROM Tbl1 ORDER BY Fld1 FOR XML AUTO" & vbCrLf & _
		"</sql:query></root>"
'Init database objects
	Set cnnMain = CreateObject("ADODB.Connection")
	cnnMain.Open "Provider=SQLOLEDB;Data Source=COMP;Password=sa;User ID=sa;Initial Catalog=Base"
	Set cmdTemp = CreateObject("ADODB.Command")
	Set cmdStream = CreateObject("ADODB.Stream")

'Init stream object
	cmdStream.Open

'Set Command properties
	cmdTemp.ActiveConnection = cnnMain
	cmdTemp.Commandtext = strXMLQuery
	cmdTemp.Dialect = "{5D531CB2-E6Ed-11D2-B252-00C04F681B71}"
	cmdTemp.Properties("Output Stream") = cmdStream
	cmdTemp.Properties("XSL") = Server.MapPath("template.xsl")
'Retrieve XML
	cmdTemp.Execute ,,  1024 
	Response.Write(cmdStream.ReadText(- 1 ))

'DeInit
	If cmdStream.State <>  0  Then cmdStream.Close
	If cnnMain.State <>  0  Then cnnMain.Close
	Set cmdStream = Nothing
	Set cmdTemp = Nothing
	Set cnnMain = Nothing
%>
</body>
</html>
Если кому-нибудь понадобится в будущем
...
Рейтинг: 0 / 0
19.06.2008, 12:07
    #35382273
orunbek
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразование XML в HTML
Привет всем.
Up'аюу тему, теперь проблема следующая как я могу передать значение определенного параметра XSL файлу?
...
Рейтинг: 0 / 0
19.06.2008, 12:18
    #35382312
maXmo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразование XML в HTML
у него метод есть setParameter или что-то в этом роде.
...
Рейтинг: 0 / 0
19.06.2008, 12:20
    #35382317
orunbek
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразование XML в HTML
orunbekЕсли пост не по теме, прошу модеров перенести:
А так проблему решил:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
<?xml version="1.0" encoding="windows-1251"?>
<!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" "http://www.wapforum.org/DTD/xhtml-mobile10.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
</head>
<body>
<!--#include file="include/adovbs.inc" -->
<%
	Dim cnnMain, cmdTemp, cmdStream
	Dim strXMLQuery

	Err.Clear
	strXMLQuery = "<?xml version='1.0' ?>" & vbCrLf & _
		"<root><sql:query xmlns:sql='urn:schemas-microsoft-com:xml-sql'" & vbCrLf & _
		"sql:xsl='template.xsl'>" & vbCrLf & _
		"SELECT ID, Fld1 FROM Tbl1 ORDER BY Fld1 FOR XML AUTO" & vbCrLf & _
		"</sql:query></root>"
'Init database objects
	Set cnnMain = CreateObject("ADODB.Connection")
	cnnMain.Open "Provider=SQLOLEDB;Data Source=COMP;Password=sa;User ID=sa;Initial Catalog=Base"
	Set cmdTemp = CreateObject("ADODB.Command")
	Set cmdStream = CreateObject("ADODB.Stream")

'Init stream object
	cmdStream.Open

'Set Command properties
	cmdTemp.ActiveConnection = cnnMain
	cmdTemp.Commandtext = strXMLQuery
	cmdTemp.Dialect = "{5D531CB2-E6Ed-11D2-B252-00C04F681B71}"
	cmdTemp.Properties("Output Stream") = cmdStream
	cmdTemp.Properties("XSL") = Server.MapPath("template.xsl")
'Retrieve XML
	cmdTemp.Execute ,,  1024 
	Response.Write(cmdStream.ReadText(- 1 ))

'DeInit
	If cmdStream.State <>  0  Then cmdStream.Close
	If cnnMain.State <>  0  Then cnnMain.Close
	Set cmdStream = Nothing
	Set cmdTemp = Nothing
	Set cnnMain = Nothing
%>
</body>
</html>
Если кому-нибудь понадобится в будущем
в данном примере?!
и к какому объекту это относится?
...
Рейтинг: 0 / 0
19.06.2008, 12:45
    #35382420
maXmo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразование XML в HTML
ну в этом примере, похоже, никак, можно попробовать эти параметры засунуть в <root> (или ещё куда-нить) до запроса.
...
Рейтинг: 0 / 0
19.06.2008, 12:57
    #35382470
orunbek
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразование XML в HTML
параметр не для SQL запроса, а для XSL
...
Рейтинг: 0 / 0
19.06.2008, 13:01
    #35382485
maXmo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразование XML в HTML
именно так.
...
Рейтинг: 0 / 0
19.06.2008, 13:06
    #35382503
orunbek
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразование XML в HTML
maXmoименно так.
скажем значение Server.RequestVariables("REMOTE_HOST") файлу XSL:
Код: plaintext
1.
2.
3.
<?xml version='1.0' ?>          
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
	<xsl:param name="IPAdd"/>
....
как в таком случае?
...
Рейтинг: 0 / 0
19.06.2008, 13:32
    #35382574
maXmo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразование XML в HTML
Код: plaintext
<xsl:param name="IPAdd" select="/root/@RemoteAddr"/>
...
Рейтинг: 0 / 0
19.06.2008, 13:33
    #35382585
orunbek
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразование XML в HTML
maXmo
Код: plaintext
<xsl:param name="IPAdd" select="/root/@RemoteAddr"/>

хм... интересно, попробую отпишусь
...
Рейтинг: 0 / 0
19.06.2008, 13:36
    #35382597
orunbek
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразование XML в HTML
забыл, а здесь как представить?
Код: plaintext
1.
2.
3.
4.
5.
	strXMLQuery = "<?xml version='1.0' ?>" & vbCrLf & _
		"<root><sql:query xmlns:sql='urn:schemas-microsoft-com:xml-sql'" & vbCrLf & _
		"sql:xsl='template.xsl'>" & vbCrLf & _
		"SELECT ID, Fld1 FROM Tbl1 ORDER BY Fld1 FOR XML AUTO" & vbCrLf & _
		"</sql:query></root>"
...
Рейтинг: 0 / 0
19.06.2008, 13:38
    #35382605
maXmo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразование XML в HTML
Код: plaintext
<root RemoteAddr="127.0.0.1">
...
Рейтинг: 0 / 0
19.06.2008, 13:40
    #35382611
orunbek
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразование XML в HTML
или так?
Код: plaintext
SELECT ID, Fld1,'127.0.0.1' AS RemoteAdd FROM Tbl1 ORDER BY Fld1 FOR XML AUTO
...
Рейтинг: 0 / 0
19.06.2008, 13:42
    #35382620
orunbek
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразование XML в HTML
maXmo
Код: plaintext
<root RemoteAddr="127.0.0.1">

класс получилось! спасибо!
а более 1го параметра? скажем кроме RemoteAddr еще и CompName?

P.S. Последний вопрос... :)
...
Рейтинг: 0 / 0
19.06.2008, 13:48
    #35382643
orunbek
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразование XML в HTML
все решил, проблема была в конкетенации ;)
спасибо большое! век буду не забуду ;)
...
Рейтинг: 0 / 0
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Преобразование XML в HTML / 25 сообщений из 25, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]