powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Преобразование XML в HTML
25 сообщений из 25, страница 1 из 1
Преобразование XML в HTML
    #35287130
Фотография orunbek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет всем.
Требуется помощь профи ;)
Мне нужно создать хранимку, которая будет брать из таблицы определенные данные, обычным SELECT'ом, затем результат возвращать в виде HTML, который сформирован по определенному стилю, XSL.
Как это можно сделать?
Благодарю за любую помощь! Спасибо!
...
Рейтинг: 0 / 0
Преобразование XML в HTML
    #35287214
Mnior
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
orunbekXML XML data type или просто VarChar(max) или Text или FOR XML .
orunbekXSLМоно через CLR или OLE Automation. Тока всё это большой изврат. XSLT моно и на клиенте делать и на сервере приложений. А ваще вы абсолютно ничего не сказали о вашей задаче. Даже о версии сиквела.
Куда возвращать?: В потолок? (с) Glory
Просим прощения, но функция чтения мыслей счас проходит только стадию тестирования.
И в конечном итоге - всё это (HTML, XSLT) не проблемы баз данных. Вы скорее всего ошиблись форумом.
...
Рейтинг: 0 / 0
Преобразование XML в HTML
    #35287480
Фотография orunbek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть страничка (Classic ASP), который обращается к базе данных через ADO,
вывод в таблицу делается через обычный цикл, построчно пишу в <table><tr>
Если много записей, страничка ооочень медленно открывается, вот и думал
можно ли сделать хранимку, к которой будет обращаться страничка, и хранимка
сама выполняет запрос, затем результат возвращает в виде готового HTML.
Спасибо за внимание
...
Рейтинг: 0 / 0
Преобразование XML в HTML
    #35287481
Фотография orunbek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
... дополню
знаю что можно
SELECT * FROM Tbl1 FOR XML AUTO
затем это в HTML думал...
...
Рейтинг: 0 / 0
Преобразование XML в HTML
    #35287487
Фотография Alexes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
orunbekЕсли много записей, страничка ооочень медленно открывается, вот и думал
можно ли сделать хранимку, к которой будет обращаться страничка, и хранимка
сама выполняет запрос, затем результат возвращает в виде готового HTML.
А почему именно страничка медленно открывается? Какой участок медленно работает?
...
Рейтинг: 0 / 0
Преобразование XML в HTML
    #35287491
Фотография orunbek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Покажу код, примерно
Код: 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
Преобразование XML в HTML
    #35287651
Mnior
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
orunbekЕсли много записей, страничка ооочень медленно открывается, А может не нуна "много записай". Реализуй механизмы постраничного показа на крайняк.
AJAX - пусть у клиента тормозит, коль он такой "жадный" на данные. :)

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

И опять-таки, это не проблемы SQL-я, вы ошиблись форумом.
...
Рейтинг: 0 / 0
Преобразование XML в HTML
    #35287906
Фотография orunbek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нашел ссылку:
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
Преобразование XML в HTML
    #35287922
Фотография orunbek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Преобразование XML в HTML
    #35288068
Mnior
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так до бана недалеко. Форум по MSSQL!
xsl:for-each - проце-Дурно. xsl:template и xsl:apply-templates
Вы видимо посты не читаете. Всё это скорость тока уменьшит.
Добейтесь, чтоб результат начал выдаваться сразу. Ассинхронно .
Надо мувить топик.
...
Рейтинг: 0 / 0
Преобразование XML в HTML
    #35288767
Фотография 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
Преобразование XML в HTML
    #35382273
Фотография orunbek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет всем.
Up'аюу тему, теперь проблема следующая как я могу передать значение определенного параметра XSL файлу?
...
Рейтинг: 0 / 0
Преобразование XML в HTML
    #35382312
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
у него метод есть setParameter или что-то в этом роде.
...
Рейтинг: 0 / 0
Преобразование XML в HTML
    #35382317
Фотография orunbek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Преобразование XML в HTML
    #35382420
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну в этом примере, похоже, никак, можно попробовать эти параметры засунуть в <root> (или ещё куда-нить) до запроса.
...
Рейтинг: 0 / 0
Преобразование XML в HTML
    #35382470
Фотография orunbek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
параметр не для SQL запроса, а для XSL
...
Рейтинг: 0 / 0
Преобразование XML в HTML
    #35382485
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
именно так.
...
Рейтинг: 0 / 0
Преобразование XML в HTML
    #35382503
Фотография orunbek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Преобразование XML в HTML
    #35382574
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
<xsl:param name="IPAdd" select="/root/@RemoteAddr"/>
...
Рейтинг: 0 / 0
Преобразование XML в HTML
    #35382585
Фотография orunbek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maXmo
Код: plaintext
<xsl:param name="IPAdd" select="/root/@RemoteAddr"/>

хм... интересно, попробую отпишусь
...
Рейтинг: 0 / 0
Преобразование XML в HTML
    #35382597
Фотография orunbek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
забыл, а здесь как представить?
Код: 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
Преобразование XML в HTML
    #35382605
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
<root RemoteAddr="127.0.0.1">
...
Рейтинг: 0 / 0
Преобразование XML в HTML
    #35382611
Фотография orunbek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
или так?
Код: plaintext
SELECT ID, Fld1,'127.0.0.1' AS RemoteAdd FROM Tbl1 ORDER BY Fld1 FOR XML AUTO
...
Рейтинг: 0 / 0
Преобразование XML в HTML
    #35382620
Фотография orunbek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maXmo
Код: plaintext
<root RemoteAddr="127.0.0.1">

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

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


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