Модераторы: diadiavova
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Прошу помощи с xsl 
:(
    Опции темы
misantropia
Дата 18.7.2014, 15:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 22.5.2014

Репутация: нет
Всего: нет



есть исходный xml
Код

<?xml version="1.0" encoding="WINDOWS-1251"?>
<?xml-stylesheet type="text/xsl" href=".xsl" ?>
<Type>
  <Pr id="Iek">
    <Sr id="IP54">
      <Nom id="ЩМП1" art="YKM40-01-54" cena="1885,05" name="Корпус Металлический ЩМП-1-0 74 У2"/>
      <Nom id="ЩМП2" art="YKM40-02-54" cena="2235,51" name="Корпус Металлический ЩМП-2-0 74 У2"/>
      <Nom id="ЩМП3" art="YKM40-03-54" cena="2686,86" name="Корпус Металлический ЩМП-3-0 74 У2"/>
      <Nom id="ЩМП4" art="YKM40-04-54" cena="4019,67" name="Корпус Металлический ЩМП-4-0 74 У2"/>
      <Nom id="ЩМП5" art="YKM40-05-54" cena="4996,71" name="Корпус Металлический ЩМП-5-0 74 У2"/>
      <Nom id="ЩМП6" art="YKM40-06-54" cena="6642,81" name="Корпус Металлический ЩМП-6-0 74 У2"/>
    </Sr>
    <Sr id="IP31">
      <Nom id="ЩМП1" art="YKM40-01-54" cena="1885,05" name="Корпус Металлический ЩМП-1-0 74 У2"/>
      <Nom id="ЩМП2" art="YKM40-02-54" cena="2235,51" name="Корпус Металлический ЩМП-2-0 74 У2"/>
      <Nom id="ЩМП3" art="YKM40-03-54" cena="2686,86" name="Корпус Металлический ЩМП-3-0 74 У2"/>
      <Nom id="ЩМП4" art="YKM40-04-54" cena="4019,67" name="Корпус Металлический ЩМП-4-0 74 У2"/>
      <Nom id="ЩМП5" art="YKM40-05-54" cena="4996,71" name="Корпус Металлический ЩМП-5-0 74 У2"/>
      <Nom id="ЩМП6" art="YKM40-06-54" cena="6642,81" name="Корпус Металлический ЩМП-6-0 74 У2"/>
    </Sr>
    </Pr>
  <Pr id="DKC">
  </Pr>
  </Type>

Используя шаблон получаю все значения атрибута id тега Pr
Код

<?xml version="1.0" encoding="WINDOWS-1251" ?>
<xsl:stylesheet version = "1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="Pr">
  <xsl:value-of select="@id"/>
<xsl:text>&#x0A;</xsl:text>
</xsl:template>
</xsl:stylesheet> 


Модератор: не забываем использовать теги code
далее необходимо обращаясь по полученному значению атрибута id тега Pr(к примеру  id="Iek") получить значение атрибута id всех тегов Sr
PM MAIL   Вверх
diadiavova
Дата 18.7.2014, 22:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5820
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 22
Всего: 142



Цитата(misantropia @  18.7.2014,  16:53 Найти цитируемый пост)
далее необходимо обращаясь по полученному значению атрибута id тега Pr(к примеру  id="Iek") получить значение атрибута id всех тегов Sr 

Не вполне корректная формулировка. Что значит "далее"? Можно увидеть примерный набросок того, что нужно получить? Шаблон будет применяться ко всем элементам Pr, поэтому внутри шаблона выражение Sr будет относиться именно к элементам с таким именем, являющимся непосредственными потомками текущего элемента. Если же тебе надо в каком-то другом месте получить этот же набор узлов, то можно использовать к примеру такое выражение //Pr[@id = 'Iek']/Sr


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
misantropia
Дата 18.7.2014, 22:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 22.5.2014

Репутация: нет
Всего: нет



Прошу прощения за не полную постановку задачи...
пишу на вб.нет небольшую программку для упрощения составления спецификаций,есть несколько листбоксов,после первого преобразования сохраняю в текстовый файл все значения атрибутов тега Pr и загружаю в 1-й листбокс,затем по события выбранного итема в листбоксе необходимо вывести значения атрибутов тега Sr дочернего тегу Pr с выбранным значением id, и т.д.
Пример:
IP54
IP31
При следующем преобразовании:
ЩМП1
ЩМП2
ЩМП3
ЩМП4
ЩМП5
ЩМП6
Подозреваю,что с базами данных было бы проще,но совсем с ними не знаком,погуглив пришел к выводу ,что xml идеальный вариант для древовидных данных
Спасибо за помощь,буду пробовать.
Не серчайте если что,ибо начинающий


Это сообщение отредактировал(а) misantropia - 18.7.2014, 22:54
PM MAIL   Вверх
diadiavova
Дата 18.7.2014, 23:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5820
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 22
Всего: 142



Не очень понятно каким боком при такой постановке задачи здесь вообще появляется xsl. Можно запросить из документа набор данных данных. Ну если, скажем для обработки хмл используется старая библиотека System.Xml.dll, то у объекта документа есть метод SelectNodes, позволяющий получить набор узлов по выражению XPath. Это и проще, да и загружать потом их свойства в лисбокс куда удобнее. Например //Pr/@id выдаст набор атрибутов id для всех элементов Pr документа, а упоминавшееся мною ранее выражение //Pr[@id = 'Iek']/Sr/@id при передаче этому методу выдаст все id всех элементов Sr, являющихся потомками Pr с id="Iek".  Можно, конечно и xsl использовать, да еще и несколько раз, только это "из пушки по воробьям", все это делается намного проще.




--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
misantropia
Дата 18.7.2014, 23:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 22.5.2014

Репутация: нет
Всего: нет



Еще раз спасибо...
Буду смотреть в эту сторону)))
А из пушки по воробьям по причине первых неуверенных шагов в программировании,а именно от незнания)
Спасибо за терпение)
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "XML/XSLT"
diadiavova

Прежде чем опубликовать вопрос, попробуйте воспользоваться поиском - возможно тема уже поднималась.

Также рекомендуем Вам зайти в раздел FAQ ,раздел дополняется и, возможно, там вы увидите готовое решение.

Для ответов на часто задаваемые вопросы существует FAQ раздела. Новости можно публиковать в разделе новостей. Для статей так же есть специальный раздел

Желаем удачи в Вашем деле!


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, diadiavova.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | XML, XSL | Следующая тема »


 




[ Время генерации скрипта: 0.1030 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.