powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Копировать XML
10 сообщений из 10, страница 1 из 1
Копировать XML
    #36740844
junb1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте. Помогите, пожалуйста. Необходимо кусок входящего xml вставить в textarea.
копирую вот таким темплейтом
Код: plaintext
1.
2.
3.
4.
<xsl:template match="@* | node() | text()" mode="mygridcopy" name="mygridcopy">
	<xsl:copy>
		<xsl:apply-templates select="@* | node() | text()" mode="mygridcopy"/>
	</xsl:copy>
</xsl:template>
все хорошо копирует, пока не попадается примерно такое
Код: plaintext
<row MESSAGE="<messages Stamp='' Role='' messageId='100'& gt;& lt;/messages>"></row> 
оно заменяет & gt;& lt; на >< и xml тогда получается не валидный. Как мне копировать, что-бы было как во входящем xml?
...
Рейтинг: 0 / 0
Копировать XML
    #36740930
junb1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
не везде поставил пробелы
Код: plaintext
<row MESSAGE="& gt;messages Stamp='' Role='' messageId='100'& gt;& lt;/messages& lt;"></row> 
...
Рейтинг: 0 / 0
Копировать XML
    #36742000
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
<xsl:output method="xml"/>
пробовали?
...
Рейтинг: 0 / 0
Копировать XML
    #36742409
junb1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
пробовал. не помогает
...
Рейтинг: 0 / 0
Копировать XML
    #36743515
junb1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
никто не знает? :(
...
Рейтинг: 0 / 0
Копировать XML
    #36743788
Andry Trushin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
junb1,

1.
Код: plaintext
 mode="mygridcopy" name="mygridcopy">
так быть не может, если трансформер это съел, и не выругался - вы в беде.
2. Для атрибутов, текста и нод пишутся разные темплейты, т.к. их обробатывать приходится по разному, например, у текста и атрибутов нечего аплаить внутри.
3. Если вы напишите разные темплейты на теги и на текст, то обнаружите, что у xsl:text и у xsl:value-of существует волшебный атрибут - disable-output-escaping.
...
Рейтинг: 0 / 0
Копировать XML
    #36744766
junb1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
переделал так
Код: plaintext
1.
2.
3.
4.
5.
<xsl:template match="@* | node() | text()" mode="mygridcopy">
	<xsl:copy>
		<xsl:copy-of select="@*|text()"/>
		<xsl:apply-templates select="node()" mode="mygridcopy"/>
	</xsl:copy>
</xsl:template>
теперь копирует без замен, но темплейт приходится вызывать так
Код: plaintext
1.
2.
3.
4.
<textarea>
	<xsl:text disable-output-escaping ="yes">& lt;!--</xsl:text>
	<xsl:apply-templates select="$source/*" mode="mygridcopy"/>
	<xsl:text disable-output-escaping ="yes">--& gt;</xsl:text>
</textarea>
если убрать символы комментариев, то замены делает. почему?
...
Рейтинг: 0 / 0
Копировать XML
    #36745886
mage.lan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
junb1,

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
<xsl:template match="@*" mode="mygridcopy">
	<xsl:copy>
		<xsl:value-of disable-output-escaping="yes" select="." />
	</xsl:copy>
</xsl:template>
<xsl:template match="text()" mode="mygridcopy">
	<xsl:value-of disable-output-escaping="yes" select="." />
</xsl:template>
<xsl:template match="* | node()" mode="mygridcopy">
	<xsl:copy>
		<xsl:apply-templates mode="mygridcopy"/>
	</xsl:copy>
</xsl:template>
...
Рейтинг: 0 / 0
Копировать XML
    #36745892
mage.lan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если
Код: plaintext
<xsl:apply-templates mode="mygridcopy"/>
атрибуты не подхватит, значит прийдется написать:
Код: plaintext
<xsl:apply-templates select="@*|*" mode="mygridcopy"/>
...
Рейтинг: 0 / 0
Копировать XML
    #36965148
bobesko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mage.lanjunb1,

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
<xsl:template match="@*" mode="mygridcopy">
	<xsl:copy>
		<xsl:value-of disable-output-escaping="yes" select="." />
	</xsl:copy>
</xsl:template>
<xsl:template match="text()" mode="mygridcopy">
	<xsl:value-of disable-output-escaping="yes" select="." />
</xsl:template>
<xsl:template match="* | node()" mode="mygridcopy">
	<xsl:copy>
		<xsl:apply-templates mode="mygridcopy"/>
	</xsl:copy>
</xsl:template>


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


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