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

Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
<section>
					<h1>ешеду</h1>
					<p>
						блабла бла
        
						<ulist>
							<item>111111</item>
							<item>22222</item>
						</ulist>

бла бла бла
					</p>
				</section>



как получить

<p>блабла бла

<ul>
<li>111111</li>
<li>22222</li>
</ul>
бла бла бла
</p>

делаю так



Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
<xsl:template match="p">
    
    <xsl:if test="ulist"><xsl:apply-templates select="ulist" /></xsl:if>
    
   <p><xsl:value-of select="."/></p>
    

  </xsl:template>
  
  <xsl:template match="ulist">
    <ul><xsl:for-each select="item">
      <li><xsl:value-of select="."/></li>
    </xsl:for-each></ul>
  </xsl:template>




выводит сначала список потом неотформатированный абзац

подскажите пожалуйста)
...
Рейтинг: 0 / 0
как обработать тег внутри текста
    #38157643
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
volodymyrlвыводит сначала список потом неотформатированный абзац
подскажите пожалуйста)
Срабатывает правило обработки текстовых узлов по умолчанию - если он не обработаны никаким темплейтом, то выводятся as is. Включите в xslt шаблоны для обработки p/text().
...
Рейтинг: 0 / 0
как обработать тег внутри текста
    #38157647
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
* и между обработкой первого и второго text() применяйте шаблон для ulist.
...
Рейтинг: 0 / 0
как обработать тег внутри текста
    #38157931
mage.lan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
volodymyrl,

типичный xHTML парсинг, делаем так:
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
<xsl:template match="*" mode="parse" priority="-1">
    <xsl:copy>
         <xsl:copy-of select="@*" />
         <xsl:apply-templates mode="parse" />
    </xsl:copy>
</xsl:template>
<xsl:template match="text()" mode="parse">
    <xsl:copy-of select="." />
</xsl:template>
<xsl:template match="ulist" mode="parse">
    <ul>
        <xsl:apply-templates mode="parse" />
    </ul>
</xsl:template>
<xsl:template match="ulist/item" mode="parse">
    <li>
        <xsl:apply-templates mode="parse" />
    </li>
</xsl:template>


зовем соответственно так:
Код: xml
1.
<xsl:apply-templates select="section/node()" mode="parse" />


мода, чтобы не влетело в другие правила умолчания, можно и без нее, но глюки потом ловить сложнее.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / как обработать тег внутри текста
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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