Гость
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Сравнение и вывод атрибутов, не понятно... / 12 сообщений из 12, страница 1 из 1
04.07.2015, 20:21
    #38999680
slav4ik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение и вывод атрибутов, не понятно...
Добрый день! Надеюсь на помощь от гуру) сам, только начинаю вникать в xml и шаблоны xsl. Более менее разобрался с выводом xml, но вот сравнить, хоть убей не понимаю, как?
Вот пример xml файла:

<?xml version="1.0" encoding="WINDOWS-1251"?>
<?xml-stylesheet type='text/xsl' href='ex03-1.xsl'?>
<tutorial>
<properties>
  <property>
<property id="p3004">количество лап</property>
<property id="p3009">количество глаз</property>
<property id="p3029">количество усов </property>
  </property>
</properties>
<items>
<p3009>2</p3009>
<p3004>4</p3004>
<p3029>124</p3029>
</items>
</tutorial>

как посоветуете реализовать сопоставление и вывод на экран,  property id с items?
понятно, что это кусок кода, из множества строк... Мой мозг хочет взорваться) в гугле устал искать подобные примеры... Да и 3g не очень этому способствует, вся надежда на вас!

код шаблона соответственно:
<?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">
<td align="center"><strong>1</strong></td>
<td align="center"><strong>2</strong></td>
</tr>
<xsl:for-each select="tutorial/properties/property/property">
<tr bgcolor="#F5F5F5">
<td><xsl:value-of select="property"/></td>
<td align="right"><xsl:value-of select="//property/@id"/></td>
</tr>
</xsl:for-each>
</table>
</xsl:template>
</xsl:stylesheet>
...
Рейтинг: 0 / 0
05.07.2015, 14:13
    #38999867
slav4ik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение и вывод атрибутов, не понятно...
Жутко интересно, ни кто не сталкивался с подобной задачей, или ни кто не хочет помогать начинающему? Наконец то нашел ресурс интересный, а помочь некому(
...
Рейтинг: 0 / 0
05.07.2015, 15:58
    #38999910
petalvik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение и вывод атрибутов, не понятно...
slav4ikencoding="WINDOWS-1251"Жуть!

slav4ikxmlns:xsl=" http://www.w3.org/TR/WD-xsl" Это что? Зачем?
Это путь к документации, но не правильное пространство имён.

И да, никому не интересно даже смотреть неоформленное сообщение. Есть же тэг SRC!
К тому же, зачем в коде все эти bgcolor, aling и прочее, засоряющее суть?

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

  <xsl:template match="/">
    <table border="1">
      
      <tr bgcolor="#CCCCCC">
        <td align="center">
          <strong>1</strong>
        </td>
        <td align="center">
          <strong>2</strong>
        </td>
      </tr>
      
      <xsl:for-each select="tutorial/properties/property/property">
        <xsl:variable name="prop-id" select="@id" />
        <tr bgcolor="#F5F5F5">
          <td>
            <xsl:value-of select="." />
          </td>
          <td align="right">
            <xsl:for-each select="/tutorial/items/*[local-name() = $prop-id]">
              <xsl:value-of select="." />
            </xsl:for-each>
          </td>
        </tr>
      </xsl:for-each>
      
    </table>
  </xsl:template>
</xsl:stylesheet>
...
Рейтинг: 0 / 0
06.07.2015, 09:05
    #39000175
slav4ik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение и вывод атрибутов, не понятно...
Весь код, был взят с примеров на сайтах, но переделан под себя, в меру моих познаний... А по остальным замечаниям согласен, прошу прощения, обязательно исправлюсь! И огромное спасибо за помощь! Буду пробовать, и разбираться дальше, надеюсь с помощью участников форума) а если еще книгу (самоучитель) посоветуете, будет вообще идеально.
...
Рейтинг: 0 / 0
06.07.2015, 21:22
    #39000918
slav4ik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение и вывод атрибутов, не понятно...
Ура! Спасибо, еще больше прежнего) заработало, как надо! но теперь другой вопрос: а как быть, если необходимо немного изменить xml:
Код: xml
1.
2.
3.
4.
5.
6.
7.
<items>
	<item id="100448" template="Кот разноцветный">
	<p3009>2</p3009>
	<p3004>4</p3004>
	<p3029>124</p3029>
	<p3066>32</p3066>
        </item>


просто решил разбить по категориям, но не могу вывести данные, понимаю, что ошибка где то здесь... Пробовал исправить, но не получается...
Код: xml
1.
2.
3.
4.
5.
<td align="right">
            <xsl:for-each select="/tutorial/items*[local-name() = $prop-id]">
              <xsl:value-of select="." />
            </xsl:for-each>
          </td>


И еще вопрос: вот таким кодом пытаюсь вывести item id, но он выводит первое item id, во все столбцы...
Код: xml
1.
2.
  <td><xsl:value-of select="item"/></td>
<td align="right"><xsl:value-of select="//item/@id"/></td>

Как же правильно вывести item id, и в идеале для каждого item id в отдельном столбце template
...
Рейтинг: 0 / 0
06.07.2015, 22:50
    #39000946
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение и вывод атрибутов, не понятно...
Код: xml
1.
<xsl:for-each select="/tutorial/items/*[local-name() = $prop-id]">


Код: xml
1.
<td align="right"><xsl:value-of select="@id"/></td>
...
Рейтинг: 0 / 0
06.07.2015, 23:02
    #39000948
slav4ik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение и вывод атрибутов, не понятно...
Блин, как все просто) Только надо не property id, а item id. Так не получилось(
Код: xml
1.
  <td align="right"><xsl:value-of select="/tutorial/items/@id"/></td>
...
Рейтинг: 0 / 0
06.07.2015, 23:07
    #39000950
slav4ik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение и вывод атрибутов, не понятно...
_Vasilisk_,Спасибо! А какие еще могут быть варианты? Я ж теперь не усну, когда победа, так близко)))
...
Рейтинг: 0 / 0
06.07.2015, 23:11
    #39000952
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение и вывод атрибутов, не понятно...
Код: xml
1.
<td align="right"><xsl:value-of select="item/@id"/></td>
...
Рейтинг: 0 / 0
06.07.2015, 23:17
    #39000956
slav4ik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение и вывод атрибутов, не понятно...
_Vasilisk_, Тоже не хочет, пробовал и полный путь указывать...
...
Рейтинг: 0 / 0
06.07.2015, 23:29
    #39000965
slav4ik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение и вывод атрибутов, не понятно...
_Vasilisk_,Странно, но сейчас с полным путем получилось)
А как то можно привести таблицу примерно в такой вид:
100448 Кот разноцветный
Глаза 2
Лапы 4
Усы 124
Пятна 32
111448 Пес черный
Глаза 2
Лапы 4
Усы 124
Пятна 32
Не знаю, как тут таблицу вставить, но думаю суть понятна) Заранее огромное спасибо)
...
Рейтинг: 0 / 0
07.07.2015, 15:12
    #39001507
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение и вывод атрибутов, не понятно...
...
Рейтинг: 0 / 0
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Сравнение и вывод атрибутов, не понятно... / 12 сообщений из 12, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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