利用XSL对XML数据进行加密和大小写转换
2004-11-16 21:39
489 查看
XML数据一个最普通的问题就是数据的大小写,在进行数据转换时常常产生令人头疼的麻烦。下面就是一个 解决的办法。
假设你有一些数据要发送到另外一个系统,它也识别XML格式的数据,而且要求全部大写,例子数据如下:
例子1:person.xml
假设你要转换成如下的格式:
例子2:newperson.xml
解决这个转换问题一般是用XPATH函数里的translate(),例如:
<foo><xsl:value-of select="translate('This is a test', 'tis', 'TIS')" /></foo>
转换后结果如下:
<foo>ThIS IS a TeST</foo>
但是如何把全部的文字转换成大写呢?下面就是进行这样处理的代码:
先定义两个变量:
<xsl:variable name="uppercase">ABCDEFGHIJKLMNOPQRSTUVWXYZ</xsl:variable>
<xsl:variable name="lowercase">abcdefghijklmnopqrstuvwxyz</xsl:variable>
再进行转换:
<foo><xsl:value-of select="translate('This is a test', $lowercase, $uppercase)" /></foo>
结果如下:
<foo>THIS IS A TEST</foo>
对刚才的问题,可以编写XSL文件如下:
例子3: person.xsl
<?xml version="1.0" encoding="gb2312"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:variable name="uppercase">ABCDEFGHIJKLMNOPQRSTUVWXYZ</xsl:variable>
<xsl:variable name="lowercase">abcdefghijklmnopqrstuvwxyz</xsl:variable>
<xsl:template match="/">
<PERSON>
<NAME>
<FIRST><xsl:value-of select="translate(/Person/Name/First,$lowercase,$uppercase)"/></FIRST>
<LAST><xsl:value-of select="translate(/Person/Name/Last,$lowercase,$uppercase)"/></LAST>
</NAME>
</PERSON>
</xsl:template>
</xsl:stylesheet>
启发
从上面的方法呢会想到什么呢?对数据进行加密!对了,用这种方法可以实现XML数据的加密。
例子:
加密后结果如下:
<foo>8Snr6nr6k6NzrN</foo>
解密也很简单,只要把两个变量颠倒即可。
假设你有一些数据要发送到另外一个系统,它也识别XML格式的数据,而且要求全部大写,例子数据如下:
例子1:person.xml
程序代码: | |
|
例子2:newperson.xml
程序代码: | |
|
<foo><xsl:value-of select="translate('This is a test', 'tis', 'TIS')" /></foo>
转换后结果如下:
<foo>ThIS IS a TeST</foo>
但是如何把全部的文字转换成大写呢?下面就是进行这样处理的代码:
先定义两个变量:
<xsl:variable name="uppercase">ABCDEFGHIJKLMNOPQRSTUVWXYZ</xsl:variable>
<xsl:variable name="lowercase">abcdefghijklmnopqrstuvwxyz</xsl:variable>
再进行转换:
<foo><xsl:value-of select="translate('This is a test', $lowercase, $uppercase)" /></foo>
结果如下:
<foo>THIS IS A TEST</foo>
对刚才的问题,可以编写XSL文件如下:
例子3: person.xsl
<?xml version="1.0" encoding="gb2312"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:variable name="uppercase">ABCDEFGHIJKLMNOPQRSTUVWXYZ</xsl:variable>
<xsl:variable name="lowercase">abcdefghijklmnopqrstuvwxyz</xsl:variable>
<xsl:template match="/">
<PERSON>
<NAME>
<FIRST><xsl:value-of select="translate(/Person/Name/First,$lowercase,$uppercase)"/></FIRST>
<LAST><xsl:value-of select="translate(/Person/Name/Last,$lowercase,$uppercase)"/></LAST>
</NAME>
</PERSON>
</xsl:template>
</xsl:stylesheet>
启发
从上面的方法呢会想到什么呢?对数据进行加密!对了,用这种方法可以实现XML数据的加密。
例子:
程序代码: | |
|
<foo>8Snr6nr6k6NzrN</foo>
解密也很简单,只要把两个变量颠倒即可。
程序代码: | |
|
相关文章推荐
- C#对称加密与非对称加密实例
- C语言使用openSSL库DES模块实现加密功能详解
- Java使用AES加密和解密的实例详解
- 使用Python进行AES加密和解密的示例代码
- 非对称加密算法中求解大正整数模大正整数的余数的快速计算法
- 使用 .NET 框架将现有代码作为 Web 服务提供
- Java的中文编程与配置心得
- DOM心得
- tiles和struts初步应用
- 为论文《xml数据库在移动系统中应用研究》所做的文献综述报告
- XML技术链接
- 论文研究资料阅读链接
- 点滴成河
- Mobile XML Database Products Links
- How Internet EDI Works
- Intermidiate EDI--ebXML
- 为什么普通用户可以看到其他用户创建dblink的密码?
- XML的QL查询语言及其实现
- 网络安全系列之四十七 在IIS6中申请并安装证书
- 网络安全系列之二十六 EFS加密