Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / из двух xml один html? / 3 сообщений из 3, страница 1 из 1
25.01.2007, 16:19
    #34282652
AlexeiK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
из двух xml один html?
может, кто подсказать, реально ли написать и как просто написать xslt файл, который из двух xml получает один html?

пример файлов xml:
1.xml
Код: 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.
<xml xmlns:s='uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882'
	xmlns:dt='uuid:C2F41010-65B3-11d1-A29F-00AA00C14882'
	xmlns:rs='urn:schemas-microsoft-com:rowset'
	xmlns:z='#RowsetSchema'>
<s:Schema id='RowsetSchema'>
	<s:ElementType name='row' content='eltOnly' rs:updatable='true'>
		<s:AttributeType name='AName' rs:number='1' rs:write='true'>
			<s:datatype dt:type='string' rs:dbtype='str' dt:maxLength='100' rs:precision='0' rs:maybenull='false'/>
		</s:AttributeType>
		<s:AttributeType name='COperator' rs:number='2' rs:write='true'>
			<s:datatype dt:type='string' rs:dbtype='str' dt:maxLength='110' rs:precision='0' rs:maybenull='false'/>
		</s:AttributeType>
		<s:AttributeType name='CValue' rs:number='3' rs:write='true'>
			<s:datatype dt:type='string' rs:dbtype='str' dt:maxLength='110' rs:precision='0' rs:maybenull='false'/>
		</s:AttributeType>
		<s:AttributeType name='CType' rs:number='4' rs:write='true'>
			<s:datatype dt:type='string' rs:dbtype='str' dt:maxLength='110' rs:precision='0' rs:maybenull='false'/>
		</s:AttributeType>
		<s:AttributeType name='COrderBy' rs:number='5' rs:write='true'>
			<s:datatype dt:type='string' rs:dbtype='str' dt:maxLength='110' rs:precision='0' rs:maybenull='false'/>
		</s:AttributeType>
		<s:AttributeType name='CPosition' rs:number='6' rs:write='true'>
			<s:datatype dt:type='string' rs:dbtype='str' dt:maxLength='110' rs:precision='0' rs:maybenull='false'/>
		</s:AttributeType>
		<s:AttributeType name='COrderByPosition' rs:number='7' rs:write='true'>
			<s:datatype dt:type='string' rs:dbtype='str' dt:maxLength='110' rs:precision='0' rs:maybenull='false'/>
		</s:AttributeType>
		<s:extends type='rs:rowbase'/>
	</s:ElementType>
</s:Schema>
<rs:data>
	<rs:insert>
		<z:row AName='дата' COperator='Равно ( = )' CValue='01,01,2007' CType='Переменное' COrderBy='1'
			 CPosition='1' COrderByPosition='1'/>
	</rs:insert>
	<rs:insert>
		<z:row AName='дата2' COperator='Равно ( = )' CValue='02,01,2007' CType='Переменное' COrderBy='1'
			 CPosition='1' COrderByPosition='1'/>
	</rs:insert>
</rs:data>


2.xml
Код: 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.
<?xml-stylesheet type="text/xsl" href="1.xsl"?>
<xml xmlns:s='uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882'
	xmlns:dt='uuid:C2F41010-65B3-11d1-A29F-00AA00C14882'
	xmlns:rs='urn:schemas-microsoft-com:rowset'
	xmlns:z='#RowsetSchema'>
<s:Schema id='RowsetSchema'>
	<s:ElementType name='row' content='eltOnly' rs:ReshapeName='DSRowset1_54'>
		<s:AttributeType name='key' rs:number='1' rs:writeunknown='true'>
			<s:datatype dt:type='int' dt:maxLength='4' rs:precision='10' rs:fixedlength='true' rs:maybenull='false'/>
		</s:AttributeType>
		<s:AttributeType name='c1' rs:name='_1' rs:number='2' rs:nullable='true' rs:writeunknown='true'>
			<s:datatype dt:type='string' dt:maxLength='500'/>
		</s:AttributeType>
		<s:AttributeType name='c2' rs:name='_2' rs:number='3' rs:nullable='true' rs:writeunknown='true'>
			<s:datatype dt:type='int' dt:maxLength='4' rs:precision='10' rs:fixedlength='true'/>
		</s:AttributeType>
		<s:AttributeType name='c3' rs:name='__1' rs:number='4' rs:nullable='true' rs:writeunknown='true'>
			<s:datatype dt:type='dateTime' rs:dbtype='timestamp' dt:maxLength='16' rs:scale='3' rs:precision='23' rs:fixedlength='true'/>
		</s:AttributeType>
		<s:AttributeType name='c4' rs:name='__2' rs:number='5' rs:nullable='true' rs:writeunknown='true'>
			<s:datatype dt:type='string' dt:maxLength='500'/>
		</s:AttributeType>
		<s:AttributeType name='c5' rs:name='__1_grp' rs:number='6' rs:nullable='true' rs:writeunknown='true'>
			<s:datatype dt:type='dateTime' rs:dbtype='timestamp' dt:maxLength='16' rs:scale='3' rs:precision='23' rs:fixedlength='true'/>
		</s:AttributeType>
		<s:extends type='rs:rowbase'/>
	</s:ElementType>
</s:Schema>
<rs:data>
	<z:row key='0' c5='2007-01-01T00:00:00'/>
	<z:row key='7' c1='4' c4='Дося'/>
	<z:row key='8' c1='1' c4='Фейри'/>
	<z:row key='10' c1='7' c4='Дося'/>
	<z:row key='11' c2='7' c4='Дося2'/>
	<z:row key='12' c2='-7' c4='Дося2kdt'/>
</rs:data>

и html по задумке вида:
------------------------------
дата Равно ( = ) 01,01,2007
дата2 Равно ( = ) 02,01,2007

Столбец1 Столбец2 Столбец3 Столбец 4 Столбец 5(1) 0 (5)'2007-01-01T00:00:00'(1)7 (2)4 (4)Дося(1)8 (2)1 (4)Фейри(1)10 (2)7 (4)Дося
------------------------------

возможно ли такое с помощью xslt?
и в каком направлении идти, или где подсмотреть?сложно ли будет такое сделать?

(N) это к какому столбцу относиться значение. я не смог сделать таблицу.
то есть (1) означает что значение после размещается в 1 столбце.
спасибо
...
Рейтинг: 0 / 0
27.01.2007, 12:59
    #34287154
AlexeiK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
из двух 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.
<?xml version="1.0" encoding="WINDOWS-1251"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/TR/WD-xsl">
	<xsl:template match="/">
		<table border="1">
			<tr bgcolor="#CCCCCC">
						<xsl:for-each select="/xml/s:Schema/s:ElementType/s:AttributeType">
							<td align="center">
									<strong>
										<xsl:value-of select="@rs:name"></xsl:value-of>
									</strong>
							</td>
						</xsl:for-each>
			</tr>
			<xsl:for-each select="/xml/rs:data/z:row">
				<tr bgcolor="#F5F5F5">
				<xsl:for-each select="@*">
					 <!--	   <xsl:if test="@*<>key"> -->
							<td>
								<xsl:value-of select="."/>
							</td>
						<!-- </xsl:if> -->
					</xsl:for-each>
				</tr>
			</xsl:for-each>
		</table>
	</xsl:template>
</xsl:stylesheet>

вот, я сделал примерно, но не понимаю , как сделать xsl:if для того , чтобы не учитывать элемент AttributyType c name=Key .
и второе, не понимаю, как разнести данные во втором цикле, под свои колонки(согласно схеме)
...
Рейтинг: 0 / 0
27.01.2007, 13:01
    #34287157
AlexeiK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
из двух xml один html?
и еще вопрос, какой структуры должен быть xslt скрипт, чтобы в нем сделать обработку 1.xml?
чуть выше это обработка для 2.xml.
...
Рейтинг: 0 / 0
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / из двух xml один html? / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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