Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Элемент с текстом и дочерним элементом / 4 сообщений из 4, страница 1 из 1
19.08.2007, 20:47
    #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
20.08.2007, 09:12
    #34737487
SuSa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Элемент с текстом и дочерним элементом
wssgСобственно вопрос реально ли это и как?
реально. Код нужен? (Код того как это сделать?)
...
Рейтинг: 0 / 0
20.08.2007, 09:48
    #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
20.08.2007, 10:04
    #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
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Элемент с текстом и дочерним элементом / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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