powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / из двух xml один html?
3 сообщений из 3, страница 1 из 1
из двух xml один html?
    #34282652
AlexeiK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
может, кто подсказать, реально ли написать и как просто написать 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
из двух xml один html?
    #34287154
AlexeiK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: 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
из двух xml один html?
    #34287157
AlexeiK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и еще вопрос, какой структуры должен быть xslt скрипт, чтобы в нем сделать обработку 1.xml?
чуть выше это обработка для 2.xml.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / из двух xml один html?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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