xml+xsl中分割字符
来源:互联网 发布:娱乐圈乱 知乎匿名 编辑:程序博客网 时间:2024/04/29 12:16
前几天,论坛上有一问题(详见:http://community.csdn.net/Expert/topic/3237/3237160.xml?temp=.6712152)
解决这个问题,其实主要应用xpath中的两个function:substring-before;substring-after
具体例子如下:
test.xml:
<?xml version="1.0" encoding="UTF-8"?>
<data_info CC_ID='195,196,197,198'/>
-----------------------------------------------------------------------
test.xsl:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output indent="yes" method="xml" encoding="utf-8"/>
<xsl:template match="/data_info">
<xsl:element name="{name()}">
<xsl:call-template name="splitStr">
<xsl:with-param name="str" select="@CC_ID"/>
<xsl:with-param name="ctrlname" select="'CC_ID'"/>
</xsl:call-template>
</xsl:element>
</xsl:template>
<xsl:template name="splitStr">
<xsl:param name="str"/>
<xsl:param name="ctrlname"/>
<xsl:element name="input">
<xsl:attribute name="name"><xsl:value-of select="$ctrlname"/></xsl:attribute>
<xsl:attribute name="value">
<xsl:choose>
<xsl:when test="contains($str,',')"><xsl:value-of select="substring-before($str,',')"/></xsl:when>
<xsl:otherwise ><xsl:value-of select="$str"/></xsl:otherwise>
</xsl:choose>
</xsl:attribute>
</xsl:element>
<xsl:if test="contains($str,',')">
<xsl:call-template name="splitStr">
<xsl:with-param name="str" select="substring-after($str,',')"/>
<xsl:with-param name="ctrlname" select="$ctrlname"/>
</xsl:call-template>
</xsl:if>
</xsl:template>
</xsl:stylesheet>
--------------------------------------------------------------------------------
转换后结果:
<?xml version="1.0" encoding="utf-8"?>
<data_info>
<input name="CC_ID" value="195" />
<input name="CC_ID" value="196" />
<input name="CC_ID" value="197" />
<input name="CC_ID" value="198" />
</data_info>
- xml+xsl中分割字符
- MS_SQL中分割字符串
- c#中分割字符串
- sql中分割字符串
- c#中分割字符串
- sql 中分割字符串
- sql中分割字符串
- SQL中分割字符串
- python中分割字符串
- Java中分割字符串
- Lua中分割字符串
- MFC中分割字符串
- Java中分割字符串
- Java中分割字符串
- Java中分割字符串
- Java中分割字符串
- Java中分割字符串
- Java中分割字符串
- 三、第一个Servlet
- 四、处理表单数据
- 常 用 程 序 参 考(UNIX操作系统)(PHP)
- Win 98和XP系统双启动菜单的恢复
- java对象转为java String的几种常用方法剖析
- xml+xsl中分割字符
- 贡献代码: 数据库快数开发接口
- 我是the_day!!!
- Windows XP系统八种启动模式详解
- 纪念
- 在blog上添加了天气预报。
- Oracle8 数据类型
- 为什么我的按扭只有一个else语句的有用啊
- 编写跨平台Java程序注意事项