powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Помогите новичку с XSLT
4 сообщений из 4, страница 1 из 1
Помогите новичку с XSLT
    #36287878
Silence1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мой поклон, уважаемый ALL!

Имеется xml вида:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
<Table>
       <Row>
            <Naim>Экземпляр1</Naim>
            <id123> 7 </id123>
            <id444> 6 </id444>
            <id345> 8 </id345>
       </Row>
       <Row>
            <Naim>Экземпляр2</Naim>
            <id123> 4 </id123>
            <id444> 1 </id444>
            <id345> 1 </id345>
       </Row>
       <Row>
            <Naim>Экземпляр3</Naim>
            <id123> 10 </id123>
            <id444> 10 </id444>
            <id345> 5 </id345>
       </Row>
</Table>

До сих пор использовал XSLT вида:

Код: 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.
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version = "1.0"
     xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

    <xsl:template match="/">
    <table border="1">
      <caption>Перечень</caption>
      <tr>
          <td >Наименование</td>
          <td >Код1</td>
          <td >Код2</td>
          <td  >Код3</td>          
       </tr>        
    <xsl:for-each select="Table/Row">
      <tr>
        <td >
          <xsl:value-of select="Naim"/>
        </td>
        <td >
          <xsl:value-of select=" id123"/>
        </td>
        <td >
          <xsl:value-of select=" id444"/>
        </td>
        <td>
          <xsl:value-of select=" id345"/>
        </td>
      </tr>
    </xsl:for-each>
    </table>       
    </xsl:template>
</xsl:stylesheet>

Т.е. поля idXXX задавались явным образом. Однако задача усложнилась и теперь заранее неизвестно какое будет число после id в исходном XML файле в конструкции idXXX. Можно ли как-то обойти такую неприятность?
...
Рейтинг: 0 / 0
Помогите новичку с XSLT
    #36289240
Silence1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сделал сам.:)
...
Рейтинг: 0 / 0
Помогите новичку с XSLT
    #36289552
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: 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.
<?xml version="1.0" encoding="windows-1251"?>
<xsl:stylesheet version = "1.0"
     xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

  <xsl:template match="/Table">
    <table border="1">
      <caption>Перечень</caption>
      <tr>
        <td>Наименование</td>
        <td>Код1</td>
        <td>Код2</td>
        <td>Код3</td>          
      </tr>
      <xsl:apply-templates select="Row"/>
    </table>       
  </xsl:template>

  <xsl:template match="Row">
    <tr>
      <xsl:apply-templates select="*"/>
    </tr>
  </xsl:template>

  <xsl:template match="Row/*">
    <td>
      <xsl:value-of select="."/>
    </td>
  </xsl:template>

</xsl:stylesheet>

С уважением, Vasilisk
...
Рейтинг: 0 / 0
Помогите новичку с XSLT
    #36291674
Silence1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vasilisk, спасибо.

Сам я сделал вот так:

Код: 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/1999/XSL/Transform">
    <xsl:template match="/">
    <table border="1">
      <caption>Перечень</caption>
      <tr>
          <td >Наименование</td>
          <td >Код1</td>
          <td >Код2</td>
          <td  >Код3</td>          
       </tr>        
       <xsl:for-each select="Table/Row">
       <tr>
        <td >
          <xsl:value-of select="Naim"/>
        </td>       
                <xsl:for-each select="*"> 
                       <xsl:if test="contains(name(),'id')">
  	             <td><xsl:value-of select="."/></td> 
  	          </xsl:if>   
                </xsl:for-each> 
       </tr> 
    </xsl:for-each>
    </table>       
    </xsl:template>
</xsl:stylesheet>
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Помогите новичку с XSLT
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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