powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Помогите плиз - уже замучился((
3 сообщений из 3, страница 1 из 1
Помогите плиз - уже замучился((
    #34919120
Nat_Mike
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Приветствую всех!!!
есть вот такой xml файл:

<?xml-stylesheet type="text/xsl" href="data_XSD.xsl"?>

<DataSet1 xmlns="http://tempuri.org/DataSet1.xsd">
<xs:schema id="DataSet1" targetNamespace="http://tempuri.org/DataSet1.xsd" xmlns:mstns="http://tempuri.org/DataSet1.xsd" xmlns="http://tempuri.org/DataSet1.xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" attributeFormDefault="qualified" elementFormDefault="qualified">
<xs:element name="DataSet1" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="OWNER">
<xs:complexType>
<xs:sequence>
<xs:element name="OWNER_ID" type="xs:string" minOccurs="0" />
<xs:element name="OWNER_NAME" type="xs:string" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="RES">
<xs:complexType>
<xs:sequence>
<xs:element name="RES_ID" type="xs:string" minOccurs="0" />
<xs:element name="OWNER_ID" type="xs:string" minOccurs="0" />
<xs:element name="RES_NAME" type="xs:string" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
<xs:unique name="Constraint1">
<xs:selector xpath=".//mstns:OWNER" />
<xs:field xpath="mstns:OWNER_ID" />
</xs:unique>
<xs:keyref name="FK_OWNER_RES" refer="Constraint1">
<xs:selector xpath=".//mstns:RES" />
<xs:field xpath="mstns:OWNER_ID" />
</xs:keyref>
</xs:element>
</xs:schema>
<OWNER>
<OWNER_ID>1</OWNER_ID>
<OWNER_ID>N1</OWNER_ID>
</OWNER>
<OWNER>
<OWNER_ID>2</OWNER_ID>
<OWNER_ID>N2</OWNER_ID>
</OWNER>
<RES>
<RES_ID>1</RES_ID>
<OWNER_ID>1</OWNER_ID>
<RES_NAME>NOKIO</RES_NAME>
</RES>
<RES>
<RES_ID>2</RES_ID>
<OWNER_ID>1</OWNER_ID>
<RES_NAME>I DON'T CARE ABOUT RES</RES_NAME>
</RES>
<RES>
<RES_ID>3</RES_ID>
<OWNER_ID>2</OWNER_ID>
<RES_NAME>NO</RES_NAME>
</RES>
</DataSet1>

и к нему вот такой XSL:
<?xml version="1.0" encoding="windows-1251"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/TR/WD-xsl">
<xsl:template match="/">
<H1>СПИСОК КОНТРАГЕНТОВ</H1>
<xsl:for-each select="DataSet1/OWNER" >
<br/>
<SPAN style="font-style:italic"> OWNER_ID: </SPAN>
<xsl:value-of select="OWNER_ID" /> <br/>

<xsl:for-each select="//RES" >

^^^^^^^^^^Вот сдесь идет вложенный цикл

<SPAN style="font-style:italic"> ID_RES: </SPAN>
<xsl:value-of select="RES_ID" />

<SPAN style="font-style:italic"> OWNER_ID: </SPAN>
<xsl:value-of select=" OWNER_ID" /> <br/>

ВОПРОС!!!!!! КАК мне сделать чтобы тут выбирались элементы которые соответствуют вышестоящему OWNER_ID?????????

<SPAN style="font-style:italic"> RES_NAME: </SPAN>
<xsl:value-of select="RES_NAME" /> <br/>
</xsl:for-each>

^^^^^^^^^^^Конец вложенного цикла



</xsl:for-each>

</xsl:template>
</xsl:stylesheet>

т.е. на выходе должно получится:
КОНТРАГЕНТ, его OWNER_ID (идентификационный номер)

свойства КОНТРАГЕНТА с OWNER_ID = OWNER_ID

Помогите плиз!!!!
...
Рейтинг: 0 / 0
Помогите плиз - уже замучился((
    #34920243
max_from_sumy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуй такой XPath во вложенном цикле

<xsl:for-each select="//RES[/DataSet1/OWNER/OWNER_ID = OWNER_ID]">
...
Рейтинг: 0 / 0
Помогите плиз - уже замучился((
    #34920249
max_from_sumy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не понял сразу что ты хотел, тут просто переменную надо ввести, так попробуй

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
<?xml version="1.0" encoding="windows-1251"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/TR/WD-xsl">
	<xsl:template match="/">
		<H1>СПИСОК КОНТРАГЕНТОВ</H1>
		<xsl:for-each select="DataSet1/OWNER">
			<br/>
			<SPAN style="font-style:italic"> OWNER_ID: </SPAN>
			<xsl:value-of select="OWNER_ID"/>
			<xsl:variable name="owner" select="OWNER_ID"/>
			<br/>
			<xsl:for-each select="//RES[$owner = OWNER_ID]">
				<SPAN style="font-style:italic"> ID_RES: </SPAN>
				<xsl:value-of select="RES_ID"/>
				<SPAN style="font-style:italic"> OWNER_ID: </SPAN>
				<xsl:value-of select=" OWNER_ID"/>
				<br/>					
				<SPAN style="font-style:italic"> RES_NAME: </SPAN>
				<xsl:value-of select="RES_NAME"/>
				<br/>
			</xsl:for-each>
		</xsl:for-each>
	</xsl:template>
</xsl:stylesheet>
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Помогите плиз - уже замучился((
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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