• 注册
  • 关于作者
    企业认证:趣记站长
    关注 6 粉丝 4 喜欢 9 内容 992
    江西省·南昌市
    聊天 送礼
    • 查看作者
    • 利用XSL对XML数据进行加密和大小写转换

          XML数据一个最普通的问题就是数据的大小写,在进行数据转换时常常产生令人头疼的麻烦。下面就是一个解决的办法。

          假设你有一些数据要发送到另外一个系统,它也识别XML格式的数据,而且要求全部大写,

      在Visual Basic .NET中文件I/O选项
      VB.Net调用存储过程并得到返回值,详解VB.NET对象浏览器作用体现,老生常谈:从VB6迁移到VB.net,VB.net2008精彩实例,窗体应用技巧,用VB.net2008打造你的影音播放器,一个Office 2003风格的通知控件(VB.NET),在VB.NET中操作MySQL数据库,vb.net开发中使用excel插件的代码,vb.net封装组件成com的方法,.NET环境下几种不同的邮件发送解决方案,用.net动态创建类的实例,VB.NET实现DataList横向数据交替变色,在VB.Net中创建使用控件数组,在Visual Basic .NET 中实现后台进程,VB.NET中使用Directsound9之简单播放,用新VB.NET 枚举提高效率,在有Clipboard的应用程序间移动数据,VB.NET中的变量范围差异,从Visual Basic 6.0 到 Visual Basic.NET 的转换,微软.Net程序设计FAQ
      VB.net

      例子数据如下:

      例子1:person.xml

      <Person>

      <Name>

      <First>net_lover</First>

      <Last>Xianhui Meng</Last>

      <ChineseName>孟宪会</ChineseName>

      </Name>

      </Person>

      假设你要转换成如下的格式:

      例子2:newperson.xml

      <PERSON>

      <NAME>

      <FIRST>NET_LOVER</FIRST>

      <LAST>XIANHUI MENG</LAST>

      <CHINESENAME>孟宪会</CHINESENAME>

      </NAME>

      </PERSON>

      解决这个转换问题一般是用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数据的加密。

      例子:

      <xsl:variable name="alphanumeric">ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789

      </xsl:variable>

      <xsl:variable name="encoded">K1aWXJBb2cRdeAMfQgL8yhij976klEFzmYSnIo4DpTZq5rNsUtC0uOPvVwGxH3</xsl:variable>

      <foo><xsl:value-of select="translate(''This is a test'', $alphanumeric, $encoded)" /></foo>

      加密后结果如下:

      <foo>8YS5 S5 6 rF5r</foo>

      解密也很简单,只要把两个变量颠倒即可。

      <?xml version="1.0" encoding="gb2312"?>

      <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">

      <xsl:variable name="alphanumeric">ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789</xsl:variable>

      <xsl:variable name="encoded">K1aWXJBb2cRdeAMfQgL8yhij976klEFzmYSnIo4DpTZq5rNsUtC0uOPvVwGxH3</xsl:variable>

      <xsl:template match="/">

      <foo><xsl:value-of select="translate(''This is a test'', $alphanumeric, $encoded)" /></foo>

      <br/>

      <foo><xsl:value-of select="translate(''8YS5 S5 6 rF5r'', $encoded, $alphanumeric )" /></foo>

      </xsl:template>

      </xsl:stylesheet>

      在Visual Basic .NET中文件I/O选项
      VB.Net调用存储过程并得到返回值,详解VB.NET对象浏览器作用体现,老生常谈:从VB6迁移到VB.net,VB.net2008精彩实例,窗体应用技巧,用VB.net2008打造你的影音播放器,一个Office 2003风格的通知控件(VB.NET),在VB.NET中操作MySQL数据库,vb.net开发中使用excel插件的代码,vb.net封装组件成com的方法,.NET环境下几种不同的邮件发送解决方案,用.net动态创建类的实例,VB.NET实现DataList横向数据交替变色,在VB.Net中创建使用控件数组,在Visual Basic .NET 中实现后台进程,VB.NET中使用Directsound9之简单播放,用新VB.NET 枚举提高效率,在有Clipboard的应用程序间移动数据,VB.NET中的变量范围差异,从Visual Basic 6.0 到 Visual Basic.NET 的转换,微软.Net程序设计FAQ
      VB.net

    • 0
    • 0
    • 0
    • 64
    • 单栏布局 侧栏位置: