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

подскажите как посчитать количкество симоволов участков xml с помощью xslt
xml

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
		<tests>
			<test>
				<one> 1 </one>
				<two> 2 </two>
				<three> 3 </three>
			</test>
			<test>
				<four> 4 </four>
			</test>
			<test>
				<five> 5 </five>
				<six> 6 </six>
				<seven> 7 </seven>
			</test>
		</tests>
как посчитать количество симовов тегов <test>
Код: plaintext
1.
2.
3.
4.
5.
			<test>
				<one> 1 </one>
				<two> 2 </two>
				<three> 3 </three>
			</test>
53 симовла
Код: plaintext
1.
2.
3.
			<test>
				<four> 4 </four>
			</test>
26 симолов
без учета переходов строки и прочих разделителей...
Спасибо.
...
Рейтинг: 0 / 0
количество символов в xml
    #36476314
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Задача не имеет решения для стандартного XSLT
1) Два XML документа
Код: plaintext
<test/>
и
Код: plaintext
<test></test>
идентичны с точки зрения стандартов, но содержат разное число символов

2) Для узла
Код: plaintext
<test xmlns="test"/>
Вы никогда не подсчитаете число символов

С уважением, Vasilisk
...
Рейтинг: 0 / 0
количество символов в xml
    #36477023
Фотография Referee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_,
а как-нибудь передать ветку в JavaScript и там уже преобразовать в строку можно?
например вот так вот....
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
	xmlns:msxsl="urn:schemas-microsoft-com:xslt" 
	xmlns:ext="urn:extension-functions" 
	exclude-result-prefixes="msxsl ext">
	<xsl:output method="text" encoding="windows-1251"/>

	<msxsl:script language="JavaScript" implements-prefix="ext">
		function setLen(txt){
		return txt.length
		}
	</msxsl:script>


	<xsl:template match="data">
		<xsl:value-of select="ext:setLen(.)"/>
	</xsl:template>
	
</xsl:stylesheet>
на выходе получается 1 - походу передается ссылка и это ее длина....
а как их txt в JavaScript получить именно текст xml?
...
Рейтинг: 0 / 0
количество символов в xml
    #36477973
Фотография Referee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сделал ви тоге так....

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
	xmlns:msxsl="urn:schemas-microsoft-com:xslt" 
	xmlns:ext="urn:extension-functions" 
	exclude-result-prefixes="msxsl ext">
	<xsl:output method="xml" indent="yes" encoding="windows-1251"/>

	<msxsl:script language="JavaScript" implements-prefix="ext">
		function setLen(txt){
		return txt.length
		}
		function xml(nodelist) {
		var tst = nodelist.nextNode().xml;
		var len = tst.replace(/\t/g, '').length;
		return len + ('' + len).length;
		}
	</msxsl:script>

	<xsl:template match="node() | @*">
		<xsl:copy>
			<xsl:apply-templates select="@* | node()"/>
		</xsl:copy>
	</xsl:template>
	
	<xsl:template match="node()[@len]">
		<xsl:variable name="len" select="."/>
		<xsl:copy>
			<xsl:for-each select="*">
				<xsl:attribute name="len">
					<xsl:value-of select="ext:xml($len)"/>
				</xsl:attribute>
				<xsl:copy>
					<xsl:apply-templates select="@* | node()"/>
				</xsl:copy>
			</xsl:for-each>
		</xsl:copy>
	</xsl:template>

</xsl:stylesheet>

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


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