XSLT命名空间输出&&内部调用

简介: <p><strong>XSLT命名空间输出问题:</strong></p> <p><span style="white-space:pre"></span>此属性exclude-result-prefixes可以控制命名空间的输出,比如:exclude-result-prefixes="ne xn en"【注意:命名空间前缀用空格分隔】表示在输出中不出现该命名空间的前缀列表{ne, xm

XSLT命名空间输出问题:

此属性exclude-result-prefixes可以控制命名空间的输出,比如:exclude-result-prefixes="ne xn en"【注意:命名空间前缀用空格分隔】表示在输出中不出现该命名空间的前缀列表{ne, xm, en}。


XSLT中回车换行表示:

<xsl:text>&#10;</xsl:text>

<xsl:text>&#xa;</xsl:text>


XSLT内部调用举例:

<?xml version="1.0" encoding="UTF-8"?>

<xsl:stylesheet version="2.0"
	xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
	xmlns:ne="http://www.3gpp.org/ftp/specs/archive/32_series/32.615#configData"
	xmlns:xn="http://www.3gpp.org/ftp/specs/archive/32_series/32.625#genericNrm"
	xmlns:en="http://www.3gpp.org/ftp/specs/archive/32_series/32.765#eutranNrm"
	exclude-result-prefixes="ne xn en">
	
	<xsl:output method="xml" indent="yes" encoding="UTF-8" />

	<xsl:template match="/">	
		<NrmFile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
			xsi:noNamespaceSchemaLocation="NrmFileFormat.xsd">
			<xsl:element name="CM">
			
				<xsl:for-each select="//xn:ManagedElement [*]">
					<xsl:variable name="ManagedBy" select="xn:attributes/xn:ManagedBy" />
					<xsl:variable name="ManagedElementID" select="@id" />

					<xsl:variable name="PrefixDN">
						<xsl:call-template name="substring-first">
							<xsl:with-param name="text" select="$ManagedBy" />
							<xsl:with-param name="splitor1" select="','" />
							<xsl:with-param name="splitor2" select="'\,'" />
						</xsl:call-template>
					</xsl:variable>

					<xsl:attribute name="Dn">
						<xsl:value-of select="concat($PrefixDN, ',ManagedElement=',$ManagedElementID)" />
					</xsl:attribute>
					
					<ManagedElementId>
						<xsl:value-of select="$ManagedElementID" />
					</ManagedElementId>
						
					<UserLabel>
						<xsl:value-of select="en:attributes/en:UserLabel" />
					</UserLabel>						
					
				</xsl:for-each>
				
			</xsl:element>
		</NrmFile>
	</xsl:template>
	
	<xsl:template name="substring-first">
		<xsl:param name="text" />
		<xsl:param name="splitor1" />
		<xsl:param name="splitor2" />
		<xsl:choose>
			<xsl:when test="contains($text, $splitor2)">
				<xsl:value-of select="substring-before($text,$splitor2)" />
			</xsl:when>
			<xsl:otherwise>
				<xsl:choose>
					<xsl:when test="contains($text, $splitor1)">
						<xsl:value-of select="substring-before($text,$splitor1)" />
					</xsl:when>
					<xsl:otherwise>
						<xsl:value-of select="$text" />
					</xsl:otherwise>
				</xsl:choose>
			</xsl:otherwise>
		</xsl:choose>
	</xsl:template>	
	
	<xsl:template name="string-replace-all">
		<xsl:param name="text" />
		<xsl:param name="old" />
		<xsl:param name="new" />
		<xsl:choose>
			<xsl:when test="contains($text, $old)">
				<xsl:value-of select="substring-before($text,$old)" />
				<xsl:value-of select="$new" />
				<xsl:call-template name="string-replace-all">
					<xsl:with-param name="text" select="substring-after($text,$old)" />
					<xsl:with-param name="old" select="$old" />
					<xsl:with-param name="new" select="$new" />
				</xsl:call-template>
			</xsl:when>
			<xsl:otherwise>
				<xsl:value-of select="$text" />
			</xsl:otherwise>
		</xsl:choose>
	</xsl:template>
</xsl:stylesheet>
相关文章
|
JavaScript
31avalon - 指令ms-rules(验证规则绑定)
31avalon - 指令ms-rules(验证规则绑定)
49 0
32avalon - 指令ms-rules(自定义验证规则)
32avalon - 指令ms-rules(自定义验证规则)
41 1
|
网络架构
ES6中新增的rest剩余参数在函数内部的使用问题
ES6 中引入了 rest 参数(...变量名),用于获取函数内不确定的多余参数,注意只能放在所有参数的最后一个
60 0
ts解决依赖引入报错:无法找到模块“xxxxxx”的声明文件的报错问题
ts解决依赖引入报错:无法找到模块“xxxxxx”的声明文件的报错问题
1899 0
|
JavaScript 算法
ES6 对象的扩展内容
ES6 对象的扩展内容
97 0
|
Dart
Dart之dynamic(任意类型)
Dart之dynamic(任意类型)
90 0
Dart之dynamic(任意类型)
angular21-关于指令标准属性
angular21-关于指令标准属性
83 0
angular21-关于指令标准属性
|
存储 开发框架 前端开发
C#特性 System.ComponentModel命名名空间属性方法大全,Syst em.ComponentModel命名空间的特性
目录: System.ComponentModel 特性命名空间与常用类 System.ComponentModel.DataAnnotations ComponentModel - Classes 类 ComponentModel - Structs 结构体 ComponentModel - Interfaces 界面 ComponentModel - Enums 枚举 ComponentModel - Delegates 委托
274 0
C#特性 System.ComponentModel命名名空间属性方法大全,Syst em.ComponentModel命名空间的特性
|
程序员 Python
python模块与类库(创建、导入与使用逻辑,子模块,if __name__ ==‘main‘: 语句, __name__,__dict__,__doc__,__file__等)
python模块与类库(创建、导入与使用逻辑,子模块,if __name__ ==‘main‘: 语句, __name__,__dict__,__doc__,__file__等)
257 0
python模块与类库(创建、导入与使用逻辑,子模块,if __name__ ==‘main‘: 语句, __name__,__dict__,__doc__,__file__等)
|
存储 程序员 编译器
c++11标准 类默认函数的控制:"=default" 和 "=delete"函数
c++11标准 类默认函数的控制:"=default" 和 "=delete"函数
268 0