powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Элемент с текстом и дочерним элементом
4 сообщений из 4, страница 1 из 1
Элемент с текстом и дочерним элементом
    #34737167
wssg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Например есть xml:
Код: plaintext
1.
2.
3.
...
<text>Какой-то текст <child attr="attrVal">Текст child`а</child> еще текст</text>
...
Необходимо это преобразовать, например в такой HTML:
Код: plaintext
1.
2.
3.
4.
5.
...
<p>
Какой-то текст <a href="javascript:somefunc(attrVal,'Текст child`а')">Текст child`а</a> еще текст
</p>


Собственно вопрос реально ли это и как?

Заранее спасибо.
...
Рейтинг: 0 / 0
Элемент с текстом и дочерним элементом
    #34737487
SuSa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wssgСобственно вопрос реально ли это и как?
реально. Код нужен? (Код того как это сделать?)
...
Рейтинг: 0 / 0
Элемент с текстом и дочерним элементом
    #34737546
SuSa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код такой:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
    <xsl:template match="//text">
        <p>
            <xsl:value-of select="substring-before(//text/.,child[@attr])"/>
            <xsl:element name="a">
                <xsl:attribute name="href">
                    <xsl:value-of select="concat('javascript:somefunc(',child/@attr,',',child[@attr],')')"/>                    
                </xsl:attribute>
                <xsl:value-of select="child[@attr]"/>
            </xsl:element>
            <xsl:value-of select="substring-after(//text/.,child[@attr])"/>
        </p>
    </xsl:template>
...
Рейтинг: 0 / 0
Элемент с текстом и дочерним элементом
    #34737587
SuSa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если нужны ковычки, как у вас в примере (в моем первом примере я их не заметил и соответсвенно не вывел), то можно сделать так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
    <xsl:template match="//text" mode="text">
        <p>
            <xsl:value-of select="substring-before(//text/.,child[@attr])"/>
            <xsl:element name="a">
<xsl:attribute name="href">javascript:somefunc(<xsl:value-of select="child/@attr"/>,'<xsl:value-of select="child[@attr]"/>')</xsl:attribute>
                <xsl:value-of select="child[@attr]"/>
            </xsl:element>
            <xsl:value-of select="substring-after(//text/.,child[@attr])"/>
        </p>
    </xsl:template>
Это менее красиво но зато так как надо.
Либо можно посидеть и поломать голову над тем как доработать первый вариант
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Элемент с текстом и дочерним элементом
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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