powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Отобразить только родителя
9 сообщений из 9, страница 1 из 1
Отобразить только родителя
    #38261914
titans
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет. Вижу тут редко появляются вопросы , но все же.
У меня есть xml:
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
<root>
  <main>Main1
	  <sub_menu>sub1</sub_menu>
	  <sub_menu>sub2</sub_menu>
	  <sub_menu>sub3
		  <sub_sub_menu>sub_sub1</sub_sub_menu>
		  <sub_sub_menu>sub_sub2</sub_sub_menu>
	  </sub_menu>
  </main>
</root>


Я сделал парсинг с помощью XSLT. Мне нужно вытащить только Main1. Я пишу <xsl:value-of select="//main"/> и понятное дело, вытаскивается Main1 и все значения дочерних узлов. В общем, мне этого не нужно. Как вытащить только родителя? Заранее спасибо.
...
Рейтинг: 0 / 0
Отобразить только родителя
    #38261930
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
//main/text()
...
Рейтинг: 0 / 0
Отобразить только родителя
    #38261933
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
titans Вижу тут редко появляются вопросыЭто потому что сабж раздела сложностью не отличается.
...
Рейтинг: 0 / 0
Отобразить только родителя
    #38261957
titans
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Antonariy,
Что-то у меня с xslt туговато. Ну тогда я ещё спрошу вопросик.
Часть, которая обрабатывает, такая:
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
<xsl:template match="main">
<div class="Main"> 
<span>
	 <xsl:value-of select="//main/text() "/>
</span>	 
     <xsl:apply-templates/> 
</div>
</xsl:template>

  <xsl:template match="sub_menu">
    <div class="Sub">
		<xsl:value-of select="." />
	</div>
  </xsl:template>



Получается, родитель достается, только потом <xsl:apply-templates/> очевидно вызывает его опять. Т.е. в диве у меня два раза стоит Main1Main1. Как мне от этого избавится?
...
Рейтинг: 0 / 0
Отобразить только родителя
    #38261964
titans
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
titans,

О, догадался: <xsl:apply-templates select="//sub_menu"/>
...
Рейтинг: 0 / 0
Отобразить только родителя
    #38261971
titans
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хотя нет, не совсем правильно. Это берет все узлы по всему документу.
...
Рейтинг: 0 / 0
Отобразить только родителя
    #38261989
titans
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Получается Main1 это дочерний элемент, и он правильно вызывается. Значит мне его нужно отфильтровать...
...
Рейтинг: 0 / 0
Отобразить только родителя
    #38262015
titans
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Методом тыка дошел: <xsl:apply-templates select="sub_menu"/>
...
Рейтинг: 0 / 0
Отобразить только родителя
    #38262492
mage.lan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
titans,

добавте корневой темплейт, чтобы не работали темплейты "пор умолчанию"
Код: xml
1.
2.
3.
<xsl:template match="/">
    <xsl:apply-templates select="//main" />
</xsl:template>
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Отобразить только родителя
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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