powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / цикл в xslt?
9 сообщений из 9, страница 1 из 1
цикл в xslt?
    #36573925
Anna.A
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Помогите пожалуйста разобраться.
Есть исходный xml такой структуры(отрывок):

<Pipeline PipeNumber="19001">
<LineDesignation>
<NominalBore>300</NominalBore>
<FluidCode>ACL22</FluidCode>
<PipingClass>LB22</PipingClass>
<SteamTracing/>
<PaintingSystem></PaintingSystem>
<Insulation>
<InsulationType></InsulationType>
<InsulationThickness></InsulationThickness>
</Insulation>
</LineDesignation>
<PipelineStatus>
<EquipmentID></EquipmentID>
</PipelineStatus>
<UnitProcess>19</UnitProcess>
<UnitConstruction/>
<TestSystems>

</TestSystems>
<SubSystems>

</SubSystems>
<PipeRouting>

<PipeRoutingFrom>
<From>CD19001A</From>
</PipeRoutingFrom>

<PipeRoutingFrom>
<From>CD19001B</From>
</PipeRoutingFrom>

<PipeRoutingFrom>
<From>CD19001C</From>
</PipeRoutingFrom>

<PipeRoutingFrom>
<From>CD19001D</From>
</PipeRoutingFrom>

<PipeRoutingFrom>
<From>CD19001E</From>
</PipeRoutingFrom>

<PipeRoutingFrom>
<From>CD19001G</From>
</PipeRoutingFrom>

<PipeRoutingFrom>
<From>CD19001H</From>
</PipeRoutingFrom>

<PipeRoutingFrom>
<From>CD19001I</From>
</PipeRoutingFrom>

<PipeRoutingFrom>
<From>CD19001J</From>
</PipeRoutingFrom>

<PipeRoutingFrom>
<From>CD19001K</From>
</PipeRoutingFrom>


<PipeRoutingTo>
<To>T02003/N01</To>
</PipeRoutingTo>

<PipeRoutingTo>
<To>19009</To>
</PipeRoutingTo>

<PipeRoutingTo>
<To>19013</To>
</PipeRoutingTo>

</PipeRouting>
<PIDInfo>
<DrawingName>1902</DrawingName>
<DrawingName>1904</DrawingName>
<DrawingName>1901</DrawingName>
<DrawingName>1905</DrawingName>
<DrawingName>1903</DrawingName>
<DrawingName>0203</DrawingName>
<DrawingName>1907</DrawingName>
<DrawingName>1906</DrawingName>
</PIDInfo>
<Userfields>
<UserField1/>
<UserField2/>
<UserField3/>
</Userfields>
</Pipeline>

xslt вида(отрывок):

<xsl:template match="Pipeline">
<span style="font-size:14pt;color:green">
<h3>Pipeline</h3>
</span>

<br><span style="color:blue"> PipeNumber: </span>
<xsl:value-of select="@PipeNumber"/></br>

<br><span style="color:blue"> NominalBore: </span>
<xsl:value-of select="LineDesignation/NominalBore"/></br>

<br><span style="color:blue"> FluidCode: </span>
<xsl:value-of select="LineDesignation/FluidCode"/></br>

<br><span style="color:blue"> PipingClass: </span>
<xsl:value-of select="LineDesignation/PipingClass"/></br>

<br><span style="color:blue"> SteamTracing: </span>
<xsl:value-of select="LineDesignation/SteamTracing"/></br>

<br><span style="color:blue"> PaintingSystem: </span>
<xsl:value-of select="LineDesignation/PaintingSystem"/></br>

<br><span style="color:blue"> InsulationType: </span>
<xsl:value-of select="LineDesignation/Insulation/InsulationType"/></br>

<br><span style="color:blue"> InsulationThickness: </span>
<xsl:value-of select="LineDesignation/Insulation/InsulationThickness"/></br>

<br><span style="color:blue"> EquipmentID: </span>
<xsl:value-of select="PipelineStatus/EquipmentID"/></br>

<br><span style="color:blue"> UnitProcess: </span>
<xsl:value-of select="UnitProcess"/></br>

<br><span style="color:blue"> UnitConstruction: </span>
<xsl:value-of select="UnitConstruction"/></br>

<br><span style="color:blue"> TestSystem: </span>
<xsl:value-of select="TestSystems/TestSystem"/></br>

<br><span style="color:blue"> SubSystems: </span>
<xsl:value-of select="SubSystems/SubSystem"/></br>

<br><span style="color:blue"> PipeRoutingFrom: </span>
<xsl:value-of select="PipeRouting/PipeRoutingFrom/From"/></br>

<br><span style="color:blue"> PipeRoutingTo: </span>
<xsl:value-of select="PipeRouting/PipeRoutingTo/To"/></br>

<br><span style="color:blue"> DrawingName: </span>
<xsl:value-of select="PIDInfo/DrawingName"/></br>

<br><span style="color:blue"> UserField1: </span>
<xsl:value-of select="Userfields/UserField1"/></br>

<br><span style="color:blue"> UserField2: </span>
<xsl:value-of select="Userfields/UserField2"/></br>

<br><span style="color:blue"> UserField3: </span>
<xsl:value-of select="Userfields/UserField3"/></br>

<hr/>
</xsl:template>

Как сделать чтобы выводились, например, все значения PipeRoutingFrom?Как правильно написать цикл?
...
Рейтинг: 0 / 0
цикл в xslt?
    #36573998
Фотография Anton_Demin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anna.A,

Код: plaintext
1.
2.
3.
4.
5.
			<xsl:for-each select="PipeRoutingFrom">
			  <br>
				<xsl:value-of select="From/text()"/>
			  </br>
			</xsl:for-each>	
...
Рейтинг: 0 / 0
цикл в xslt?
    #36574048
Anna.A
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Anton_Demin,
спасибо, все получилось
...
Рейтинг: 0 / 0
цикл в xslt?
    #36574553
Anna.A
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а можно ли сделать двойной цикл? при котором PIDInfo и DrawingNumber имеют значение от 1 до ∞,
попробовала так, но что-то не получается

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
<xsl:for-each select="PIDInfo">
      <br><span style="color:blue"> PIDInfo: </span>
	<xsl:for-each select="DrawingName">
	       <br><span style="color:blue"> DrawingName: </span>
		<xsl:value-of select="DrawingName"/>
                    </br>
              </xsl:for-each>
        </br>
</xsl:for-each>
...
Рейтинг: 0 / 0
цикл в xslt?
    #36574716
Фотография Anton_Demin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anna.A,

не понял задачу, можно как-то по другому сформулировать?
что получить в результате надо?
...
Рейтинг: 0 / 0
цикл в xslt?
    #36574751
Фотография Anton_Demin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anna.A,

Виной всему невнимательность:

Код: plaintext
1.
2.
3.
4.
5.
			<xsl:for-each select="PIDInfo">
				<xsl:for-each select="DrawingName">
					<xsl:value-of select="text()"/>
				</xsl:for-each>		
			</xsl:for-each>	

можно использовать вот такую конструкцию:
Код: plaintext
<xsl:value-of select="."/>
...
Рейтинг: 0 / 0
цикл в xslt?
    #36574752
Anna.A
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Anton_Demin,
отрывок хмл кода:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
<PIDInfo>
		<DrawingName> 1902 </DrawingName>
		<DrawingName> 1904 </DrawingName>
		<DrawingName> 1901 </DrawingName>
		<DrawingName> 1905 </DrawingName>
		<DrawingName> 1903 </DrawingName>
		<DrawingName> 0203 </DrawingName>
		<DrawingName> 1907 </DrawingName>
		<DrawingName> 1906 </DrawingName>
	</PIDInfo>
дело в том что и PIDInfo, и DrawingNumber могут повторятся от 1 до ∞ раз, надо получить html

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
PIDInfo
DrawingName:  1902 

DrawingName:  1904 

DrawingName:  1901 

DrawingName:  1905 

DrawingName:  1903 

DrawingName:  0203 

DrawingName:  1907 

DrawingName:  1906  
и так далее если PIDInfo еще раз повторяется
...
Рейтинг: 0 / 0
цикл в xslt?
    #36574760
Фотография Anton_Demin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anton_DeminAnna.A,

Виной всему невнимательность:

Код: plaintext
1.
2.
3.
4.
5.
			<xsl:for-each select="PIDInfo">
				<xsl:for-each select="DrawingName">
					<xsl:value-of select="text()"/>
				</xsl:for-each>		
			</xsl:for-each>	

можно использовать вот такую конструкцию:
Код: plaintext
<xsl:value-of select="."/>


Все работает, я проверил
...
Рейтинг: 0 / 0
цикл в xslt?
    #36574774
Anna.A
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Anton_Demin,

спасибо=)
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / цикл в xslt?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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