Гость
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / XML в HTML / 9 сообщений из 9, страница 1 из 1
22.02.2011, 14:56
    #37130619
rulik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XML в HTML
Собственно я не являюсь программистом, но мне очень понадобилось выполнить его функцию - поэтому как могу, так и по-пальцам расскажу какая есть проблема.
Помогите советом но лучше примером как мне разобрать файл XML в таблицу, которая будет находиться в файле HTML? но с условием, что сама таблица имеет фиксированное количество колонок (например 10), и неограниченное количество рядов. И еще одно условие как мне все это организовать так, чтобы ссылки в таблице били графическими, и все это вот чудо заработало на локальном компе. Если кто поможет - буду очень признателен.
Существует в наличии примерный файл XML
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
<?xml version="1.0"?>
<data>
	<img id="1">
		<title><book1></title>
		<link><"doc/1.html"></link> 
	</img>
	<img id="2">
		<title><book2></title>
		<link><"doc/2.html"></link> 
	</img>

		***********************
		
	<img id="n">
		<title><bookn></title>
		<link><"doc/n.html"></link> 
	</img>
</data>
...
Рейтинг: 0 / 0
22.02.2011, 15:37
    #37130724
Anton_Demin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XML в HTML
rulik,

давай подробней.
какое соответствие между твоим ХМЛ и колонками таблицы.
Код: plaintext
<img id="n">
это идентификатор колонки или строки?
...
Рейтинг: 0 / 0
22.02.2011, 15:56
    #37130781
rulik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XML в HTML
Anton_Demin,

n - это н-ный элемент в таблице. и как-бы правильно все объяснить... есть например 10 колонок.. рядов - неизвестно. Надо чтобы в каждую ячейку вставлялся элемент типа "картинка", а картинка в свою очередь должна иметь привязку к id="1",следующая картинка к id="2", и так далее пока не кончаться ячейки в ряду (10) - потом картинки идут на второй ряд (все это в зависимости от того, сколько элементов описано в xml).
Спасибо.
...
Рейтинг: 0 / 0
22.02.2011, 16:03
    #37130802
refreg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XML в HTML
rulik,

xml
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
<?xml version="1.0"?>
<?xml-stylesheet href="q2.xsl" type="text/xsl" ?>	
<data>
	<img id="1">
		<title>book1</title>
		<src>image/ 1 .jpg</src>
		<link>doc/ 1 .html</link> 
	</img>
	<img id="2">
		<title>book2</title>
		<src>image/ 2 .jpg</src>
		<link>doc/ 2 .html</link> 
	</img>
	<img id="3">
		<title>book3</title>
		<src>image/ 3 .jpg</src>
		<link>doc/ 3 .html</link> 
	</img>
</data>

xsl
Код: 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.
<?xml version="1.0"?>

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
	<xsl:output method="html"/>
	<!-- -->
	<xsl:variable name="num_col" select="4"/>
	<!-- -->
	<xsl:template match="/">
		<html>
			<body>
				<table border="1">
					<xsl:apply-templates select="data/img[position() mod $num_col=1]" mode="tr"/>
				</table>
			</body>
		</html>
	</xsl:template>
	<!-- -->
	<xsl:template match="img" mode="tr">
		<tr>
			<xsl:apply-templates select=". | following-sibling::img[position() < $num_col]" mode="td"/>
		</tr>
	</xsl:template>
	<!-- -->
	<xsl:template match="img" mode="td">
		<td>
			<a href="{link}">
				<img alt="{title}" src="{src}"/>
			</a>
		</td>
	</xsl:template>
</xsl:stylesheet>
num_col - количество колонок
...
Рейтинг: 0 / 0
22.02.2011, 16:18
    #37130830
rulik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XML в HTML
refreg,

Извините - я наверное что-то не так делаю...
Опера мне говорит, что "This document had an invalid XSLT stylesheet. Error message from the XSLT engine:"
а IE " Не удается отобразить страницу XML
Не удается просмотреть ввод XML с использованием списка стилей XSL. Исправьте ошибку и затем нажмите кнопку "Обновить" или повторите попытку позднее.


--------------------------------------------------------------------------------

Знак "<" нельзя использовать как значение атрибута. Ошибка при обработке ресурса ''file:///E:/LvivORGRES/Proba/LVIVORGRES/L...

<xsl:apply-templates select=". | following-sibling::img[position() < $num_col]" mode="td"/>
-------------------..."
...
Рейтинг: 0 / 0
22.02.2011, 16:25
    #37130850
refreg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XML в HTML
rulik,

Назови xsl - q2.xsl и положи рядом с xml. Ну, это... ну, да ладно.
...
Рейтинг: 0 / 0
22.02.2011, 16:30
    #37130866
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XML в HTML
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
<?xml version="1.0"?>
<data>
	<img id="1">
		<title><book1></title>
		<link><"doc/1.html"></link> 
	</img>
	<img id="2">
		<title><book2></title>
		<link><"doc/2.html"></link> 
	</img>

		***********************
		
	<img id="n">
		<title><bookn></title>
		<link><"doc/n.html"></link> 
	</img>
</data>

так у вас невалидный xml, сначала замените все скобки внутри элементов на & gt; и & lt;
...
Рейтинг: 0 / 0
22.02.2011, 16:30
    #37130867
rulik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XML в HTML
refreg,

Спасибо Вам за терпение, но я так и сделал - все-таки голова на месте )
я так понимаю, что ругань идет на строчку "<xsl:apply-templates select=". | following-sibling::img[position() < $num_col]" mode="td"/>"
...
Рейтинг: 0 / 0
22.02.2011, 17:35
    #37131068
rulik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
XML в HTML
refreg,

Спасибо тебе огромное - действительно Ваш код работает, и отдельное спасибо Konst_One, он натолкнул на мысль что в строке
Код: plaintext
<xsl:apply-templates select=". | following-sibling::img[position() < $num_col]" mode="td"/>
надо знак поменять с "<" на "& lt;".
...
Рейтинг: 0 / 0
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / XML в HTML / 9 сообщений из 9, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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