powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Выборка с родителями
5 сообщений из 5, страница 1 из 1
Выборка с родителями
    #37831609
Михаил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет,

не подскажете, как классически выглядит XSLT вытягивающий из документа элементы адресованные данным XPath, но с сохранением структуры документа (родителей)?

Например, есть документ:

Код: xml
1.
2.
3.
4.
5.
6.
7.
<ROOT>
  <A>
     <C/>
     <D/>
  </A>
  <B/>
</ROOT>



и путь
Код: xml
1.
/ROOT/A/C



результат должен быть

Код: xml
1.
2.
3.
4.
5.
<ROOT>
  <A>
     <C/>
  </A>
</ROOT>



Это вообще подходящая для XSLT задача?
...
Рейтинг: 0 / 0
Выборка с родителями
    #37831744
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
XPath не вытягивает узлы. Он возвращает указатели на эти узлы в дереве
...
Рейтинг: 0 / 0
Выборка с родителями
    #37831755
Михаил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ок.

Как бы вы в принципе такую задачу решали?
...
Рейтинг: 0 / 0
Выборка с родителями
    #37831990
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МихаилКак бы вы в принципе такую задачу решали?Я не понимаю вообще в чем проблема? Еще раз - XPath не удаляет узлы из дерева
...
Рейтинг: 0 / 0
Выборка с родителями
    #37832450
mage.lan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Михаил,

как-то так:
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
<xsl:template match="*" priority="-1" />
<xsl:template match="/">
  <ROOT>
    <xsl:apply-templates select="/ROOT/A[C]" />
  </ROOT>
</xsl:template>
<xsl:template match="A[C]|C">
  <xsl:copy>
    <xsl:apply-templates />
  </xsl:copy>
</xsl:template>
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Выборка с родителями
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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