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>
相关文章
|
19天前
|
算法 编译器 C语言
【C++】构建第一个C++类:Date类
【C++】构建第一个C++类:Date类
45 4
|
6月前
|
JSON 数据格式
调用 sap.ui.base.ManagedObject 的构造函数时,如何传递绑定路径进去
调用 sap.ui.base.ManagedObject 的构造函数时,如何传递绑定路径进去
25 0
|
6月前
|
API CDN
SAP UI5 compatible version 字段的作用和框架解析该值的位置
SAP UI5 compatible version 字段的作用和框架解析该值的位置
39 0
|
7月前
|
JSON 数据格式
通过一个实际例子,讲解 SAP UI5 Compatibility Version 的概念和运行时绑定解析器的选择逻辑
通过一个实际例子,讲解 SAP UI5 Compatibility Version 的概念和运行时绑定解析器的选择逻辑
32 0
|
7月前
|
网络协议 Windows
使用 Excel cdata addmin 连接 SAP ABAP 系统时需要填写的参数定义解释
使用 Excel cdata addmin 连接 SAP ABAP 系统时需要填写的参数定义解释
49 0
|
Dart
Dart之dynamic(任意类型)
Dart之dynamic(任意类型)
58 0
Dart之dynamic(任意类型)
|
存储 程序员 编译器
c++11标准 类默认函数的控制:"=default" 和 "=delete"函数
c++11标准 类默认函数的控制:"=default" 和 "=delete"函数
124 0
|
存储 开发框架 前端开发
C#特性 System.ComponentModel命名名空间属性方法大全,Syst em.ComponentModel命名空间的特性
目录: System.ComponentModel 特性命名空间与常用类 System.ComponentModel.DataAnnotations ComponentModel - Classes 类 ComponentModel - Structs 结构体 ComponentModel - Interfaces 界面 ComponentModel - Enums 枚举 ComponentModel - Delegates 委托
240 0
C#特性 System.ComponentModel命名名空间属性方法大全,Syst em.ComponentModel命名空间的特性
版本字符串比较工具接口&amp;&amp;常用接口函数
版本升级比较常用的接口,字符串解析,不是很难,但没必须重复造轮子,保存一份网上搜到的实现: /** * 比较版本号的大小,前者大则返回一个正数,后者大返回一个负数,相等则返回0 * * @...
1009 0