【软,码】发布XML/(X)HTML文本化工具

2023-05-16

   刚才本来打算把这个工具的代码贴在这里的,可是忙活了半天,却没有贴成功,真让人泄气。来CSDN.NET安家是这两天的事情,还不是太熟悉它的操作环境。只好再熟悉一下,慢慢来了。

  这是一款使用XHTML+JavaScript写的XML/(X) HTML编解码程序。实现的功能其实很简单,或者叫做简陋,不过有时候它的确是一个不错的工具。尤其当需要把代码写入XHTML页面的时候,当然不能直接把代码嵌入到页面,这时候这个工具就派上了用场。

  代码刚才没有贴上来,只好当作资源上传到资源中心了。这么简陋的东东上传到资源中心,我也觉得有点不合适,不过当时只想着要把代码共享了,也只有那么做了。

  这个工具还是很有价值的,尤其提供了直接从文件中读取的功能。在IE中运行的时候,顶部的操作部分可以直接从硬盘的文件中读取源码,然后进行编解码工作,比复制->粘贴操作要方便一些。

  现在既然熟悉了CSDN的操作环境,还是把代码放在这里。

      JavaScript部分如下:

    
/**/ /*
 *【File】
 *    Redfishx_XHTMLCoder.js
 *【Author】
 *    红鱼X (http://blog.csdn.net/redfishx)
 *【Start Date】
 *        2006年12月25日
 *【Update】
 *     2007年8月8日
 *【Description】
 *        提供一个类,Redfishx_XHTMLCoder。
 *     该类封装两个静态成员函数,执行对XML/(X)TML的相应的编码解码功能。
 *        Redfishx_XHTMLCoder.HTMLEncode执行编码,即对XML/(X) HTML进行文本化
 *    Redfixhx_XHTMLCoder.HTMLDecode执行解码,执行相反操作。
 
*/



Redfishx_XHTMLCoder 
=   new  Object();

Redfishx_XHTMLCoder.HTMLEncode 
=   function (htmlCode)
    
... {        
        
var gtChar = />/g;
        
var ltChar = /</g;
        
var quotChar = /"/g;
        var andChar = /&/g;
        var result = htmlCode.replace(andChar, 
"&amp;");//先替换&,若放在后面,会把&gt;&lt;&quot;中的&替换掉
        //可能是一个BUG,如果本行是代码的话,代码不运行window.alert(
"Type Of result:" + typeof(result));
        result = result.replace(quotChar, 
"&quot;");
        result = result.replace(gtChar, 
"&gt;");
        result = result.replace(ltChar, 
"&lt;");
        return result;
    }

Redfishx_XHTMLCoder.HTMLDecode = function(htmlCode)
    {
        var gtChar = /&gt;/g;
        var ltChar = /&lt;/g;
        var quotChar = /&quot;/g;
        var andChar = /&amp;/g;
        var result = htmlCode.replace(ltChar, 
"<");
        //可能是一个BUG,如果本行是代码的话,代码不运行window.alert(
"Type Of result:" + typeof(result));
        result = result.replace(quotChar, 
""");
        result 
= result.replace(gtChar, ">");
        result 
= result.replace(andChar, "&");//最后替换&,若放在前面,可能生成新的&gt;&lt;&quot;,那样就会替换掉本来不是这些串的字符串

        
return result;
    }


然后是XHTML部分

< html >
    
< head >
        
< title > Redfishx_XHTMLCoder </ title >
        
< meta  http-equiv ="Content-Type"  content ="text/html; charset=utf-8"   />
        
        
< script  type ="text/javascript"  src ="Redfishx_XHTMLCoder.js" ></ script >     
        
        
< script  type ="text/javascript" > ...
        
        
function displayFileContent()
        
...{
            
if(displayFileContent.arguments.length != 1)
            
...{
                window.alert(
"displayFileContent 参数个数有误!");
                
return;
            }


            
var file = document.getElementById("filePath").value;//提供文件路径
            var hFSO, hFile; //定义用于保存FileSystemObject 句柄 和 文件句柄的变量
            var bEncode = displayFileContent.arguments[0];

            
try
            
...{
                hFSO
=new ActiveXObject("Scripting.FileSystemObject"); //创建对FSO对象的引用
                hFile=hFSO.OpenTextFile(file); //打开文本文件
                var text;
                
if(bEncode)
                    text 
= Redfishx_XHTMLCoder.HTMLEncode(hFile.ReadAll()); //读取文件内容,并对特殊字符编码
                else
                    text 
= Redfishx_XHTMLCoder.HTMLDecode(hFile.ReadAll()); //读取文件内容,并对特殊字符解码

                hFile.Close(); 
//关闭文件
                showFileContent(text); //显示文件内容
            }

            
catch(e)
            
...{
                window.alert(file);
                window.alert(
"Error Info:" + e.description);
            }

        }

        
        
function showFileContent()//打开一个新窗口,显示内容
        ...{
            
var text;
            
            
if(showFileContent.arguments.length != 1)
            
...{
                window.alert(
"参数个数有误!");
                
return;
            }

            
            text 
= showFileContent.arguments[0];
            
            
var newwin=window.open('','','');  //打开一个窗口并赋给变量newwin。

            newwin.opener 
= null// 防止代码对论谈页面修改
            newwin.document.write("<code><pre>" + text + "</pre></code>");  //向这个打开的窗口中写入代码code,这样就实现了运行代码功能。
            newwin.document.close();
        }


        
function encode()
        
...{
            
var oSrc = document.getElementById("textArea_source");
            
var oTarget = document.getElementById("textArea_target");
            oTarget.value 
= Redfishx_XHTMLCoder.HTMLEncode(oSrc.value);
        }


        
function decode()
        
...{
            
var oSrc = document.getElementById("textArea_source");
            
var oTarget = document.getElementById("textArea_target");
            oTarget.value 
= Redfishx_XHTMLCoder.HTMLDecode(oSrc.value);
        }

        
</ script >
        
        
< style  type ="text/css" > ...
        
/**//* <![CDATA[ */
        body
            
{...}{
                text-align
:center;
            
}

        textarea
            
{...}{
                width
:80%;
                height
:300px;
            
}

        
/**//* ]]> */
        
</ style >
    
</ head >
    
< body >
        
< form >
            
< input  type ="file"  id ="filePath"   />
                <
input  type ="button"  value ="Encoding"  onclick ="displayFileContent(true);"   />
                <
input  type ="button"  value ="Decoding"  onclick ="displayFileContent(false);"   />
            
< hr  />
            Source Text:
< br  />
            
< textarea  id ="textArea_source" ></ textarea >< br  />< br />
            
< input  type ="button"  value ="Encode"  onclick ="encode();"   />
               
< input  type ="button"  value ="Decode"  onclick ="decode();"   />< br  />< br  />
            Target Text:
< br  />
            
< textarea  id ="textArea_target" ></ textarea >
        
</ form >
    
</ body >
</ html >

只要保留作者的签名,这片代码当然是可以供任何人(不滥用的人)随意传播使用的。希望对朋友们有所帮助。

  2007年8月8日
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【软,码】发布XML/(X)HTML文本化工具 的相关文章

  • C# xml序列化必填字段

    我需要将一些字段标记为需要写入 XML 文件 但没有成功 我有一个包含约 30 个属性的配置类 这就是为什么我不能像这样封装所有属性 public string SomeProp get return someProp set if som
  • 使用 CSS 折叠和展开元素

    我正在尝试构建一个页面 加载时仅可见标题 并且 当用户单击标题时 每个标题下方的表格会在隐藏和显示状态之间切换 我的限制是只能在 CSS 中执行此操作 这是我到目前为止想到的 https jsfiddle net Argoron c1ypx
  • 在多个按钮中调用相同的 jQuery 函数

    我对 jQuery 不太熟悉 我下载了这段代码来创建淡入 淡出弹出表单 这是代码
  • 选择具有 SQL Server XML 列类型的特定行

    我正在尝试从类似于以下定义的表中选择数据 Column Data Type Id Int DataType Int LoggedData XML 但我只想选择具有特定 DataType 值并且在 LoggedData 列中包含字符串 或评估
  • 正则表达式:删除 xml 的空元素标签

    我想将所有自封闭元素替换为长语法 因为我的网络浏览器在它们上绊倒 Example becomes 我正在使用 python 风格的正则表达式 这些解决方案都不会容纳像 foo gt 这样的属性 尝试 s lt w gt s gt lt 1
  • 身体动画不流畅

    下面代码中的 spaceShip 在开始按住任何箭头键时移动并不顺利 它移动一步 冻结一瞬间 然后 平稳 地移动 怎样才能让它从一开始就顺利运转 而不是 冻结 My code
  • 来自 HTML5 的 Phonegap Bonjour/Zeroconf 或 Websocket IP 发现

    我正在尝试实现一个 Phonegap HTML5 应用程序 该应用程序连接到 Websocket 服务器 在嵌入式设备中运行 也有 Bonjour 服务 以在家庭网络内交换数据 我想知道使用 Phonegap 检测服务器 IP 的最佳方法
  • jQuery - 如何从 div > p 获取文本

    如何从 div 类中获取主题名称 div class subject img src image eng jpg p English p div div class subject img src image bio jpg p Biolo
  • html 选择列表 - 通过传入变量获取文本值?

    我有一个显示列表语言的选择列表
  • 我如何能够以两行显示标题,并且每行的字体大小不同?

    我正在使用 Google Chart API 创建时间线图 并希望将图的标题修改为两行 问题 我如何能够显示具有不同字体大小的两线图表标题 电流输出 理想输出 相关研究 我唯一能找到的是有人试图用饼图来做到这一点 但我尝试了但无法使其发挥作
  • 使用非 ASCII(自然语言)XML 标签是否合适?

    使用以非 ASCII 自然语言编写的 XML 标签 元素名称 是否合适 XML 规范允许这样做 请参阅Names http www w3 org TR 2006 REC xml11 20060816 NT Name and 例外情况 htt
  • 使用 css 简单地将对象居中,无需修改

    我想使用 CSS 将对象居中 而不需要任何技巧 这可能吗 如何实现 我已经尝试过了 但是我的 p 标签消失了 centered position fixed top 50 left 50 有多种方法可以使元素居中 但这取决于您的元素是什么以
  • 不使用 local-name() 或 name() 函数的 XPath

    我必须解析oprResult code使用 XPath 从下面的 XML 中获取 XPath 表达式 local name oprResult code 正在按预期工作 但是 我无法使用name or local name功能为 在我的解析
  • 为什么 XML 中的 CDATA 语法看起来如此奇怪?

    CDATA 在 XML 中的使用如下
  • 不可勾选的单选按钮与专有的复选框

    从 UI 角度来看 是拥有一组具有取消选中功能的单选按钮更好 还是拥有一组独占的复选框 意味着一次只能选中一个 更好 Update 我没想到对此会有如此负面的反应 如果我给出一个更接近其使用方式的示例 也许会有所帮助 我有一个充满数据绑定内
  • 页面上使用 HTML Editor Extender 进行回发会导致 IE11 中出现 JavaScript 错误

    我已将 HTML 编辑器扩展程序添加到我正在处理的页面中 现在每当我在页面上发回帖子时 都会收到以下 Javascript 错误 JavaScript 运行时错误 参数无效 之后什么也没有发生 这在 IE10 或更低版本以及我所知道的所有其
  • 可以设置标题样式吗? (并且使用CSS或js?)[重复]

    这个问题在这里已经有答案了 我想知道是否可以设计一个title a href title This is a title Hello a 样式问题有两个方面 文本格式 编码 我猜这是可能的 所以在问题中这样做 工具提示样式 你能把它弄大一点
  • 在 HTML 下拉列表中有一个滚动条

    我正在寻找一种在 HTML 的下拉列表中添加滚动条的方法 这样如果下拉列表包含的内容超过例如 5 项 将出现滚动条以查看其余项 这是因为我将被迫列出一些大清单 过去几个小时我一直在谷歌上搜索它 但没有运气 它需要适用于 IE8 FF 和 C
  • 使用 x509 证书签署 json 文档或字符串

    如何使用 x509 证书签署 json 文档或字符串 public static void fund string filePath C Users VIKAS Desktop Data xml Read the file XmlDocum
  • CSS溢出文本显示在几行中,没有断字

    我有一些长文本显示在 div 中 该 div 具有固定的宽度和高度 我希望文本显示在几行上 作为 div 高度 并且句子单词不会中断 一行中的单词前缀和下一行中的继续 此外 我想在末尾添加省略号最后一句话 CSS white space n

随机推荐

  • iOS小米遥控器的手势监听及UI实现

    这篇文章通过实例实现了一个类似小米手势遥控器的功能页面 效果图如下所示 xff1a 触摸事件的响应通过对系统的触摸实践监听来进行 通过一个数组来对点的集合进行缓存和分析 void touchesBegan NSSet touches wit
  • 博客搬家至Github

    为了使用Markdown写作更方便一些 xff0c 以后将使用github pages来管理博客 地址 xff1a Rannie s Page 欢迎来访
  • kafka架构生产、消费、broker如何分工

    分工合作 我们将kafka的分成三个部分 xff1a 生产者存储Broker消费者 然后看看这三个部分都分别做什么事情 kafka生产者都干了什么事情 这是一张生产者大图 xff0c 我们可以从一下几点来看下 xff1a KafkaProd
  • 删除SVN记录

    64 echo on color 2f mode con cols 61 80 lines 61 25 64 REM 64 echo 正在清理SVN文件 64 rem 循环删除当前目录及子目录下所有的SVN文件 64 rem for r a
  • Bug整理

    Bug整理 1 关于gosn 问题 网上所说序列化对象嵌套了 34 其他对象 34 xff0c 而赋值的时候又是这个 34 其他对象 34 的子类 xff0c 导致了这个异常 实体类多层嵌套使用gosn版本2 7就会报错anr xff0c
  • centos panel 消失 ,让其重新出现的办法

    一不小心把 gnome 桌面下面的那个 panel 删除了 但是发现以后就没有办法再找到它了 xff0c 所以想办法把这个 panel 恢复 在终端中输入 gnome 或者 panel 再 TAB xff0c 看那些列出来的可用的命令 xf
  • Royal TSX跳板机连接内网服务器

    在mac系统中用Royal TSX是可以和windows的xshell和xftp比肩的 xff0c 但很多开发所面临的环境有可能存在跳板机 xff0c 再由跳板机连到内网服务器 xff0c 现在废话不多说 xff0c 先下好Royal TS
  • JAVA如何使用while循环打印出九九乘法表

    使用while循环打印出九九乘法表 思路 先定义出一个行等于1 当行row lt 61 9的前提下 定义列等于1 当列col lt 61 row的前提下进行格式化输出 这里同样使用横向制表符 t 当每一行的每一列运算结束时col 43 43
  • 编译内核、更新源

    1 ubuntu下面修改更新源 sudo gedit etc apt sources list 2 编译内核 xff1a 1 cd 到 usr src 下 xff0c 解压下载的内核源代码包 2 make mrproper 清理生成的文件
  • 想在已开发的android项目中,增加kotlin代码。应该怎么操作呢?

    问题描述 xff1a 想在已开发的android项目 xff0c 增加kotlin代码 应该怎么操作呢 xff1f 解决办法 xff1a 工程中配置 Kotlin 第一步 在开始编辑此文件时 xff0c Android Studio 会提示
  • Linux下查看网卡支持远程开机(wol)

    在Linux下使用Wake On LAN实现远程开机 xff0c 这样就免去机房的麻烦了 xff01 方法 步骤 安装 xff1a apt get install ethtool 1 在Linux下使用Wake On LAN实现远程开机 x
  • 记录一次在 Linux(Ubuntu)中 date 命令无效的情况

    Linux xff08 Ubuntu xff09 中 date 命令无效 环境背景系统环境需求 实操过程第一次尝试第二次尝试第三次尝试 xff08 最后一次 xff09 解决方案 总结思考 环境背景 系统环境 本地 Ubuntu 16 04
  • 一个简单的SHELL脚本模板

    一个简单的SHELL脚本模板 xff0c 适用于Java项目的启动 xff0c 停止 xff0c 重启 如果在windows上编辑 xff0c 请使用Notepad 43 43 设置编码格式为UTF 8无BOM编码 xff0c 脚本的文档格
  • Python 打印购物小票

    打印购物小票 需求 xff1a 指定折扣输入购买商品单价与数量 顾客交费结算时打印购物小票 xff0c 计算此次购物总金额 xff0c 顾客交费 xff0c 商店找补 xff0c 以及购物积分钱不够时 xff0c 提醒顾客继续交钱只给三次交
  • 创建物理卷报错Can't open /dev/sdb5 exclusively. Mounted filesystem的问题解决过程记录...

    yum服务器lvm扩容 xff0c data目录是yum存放rpm包的目录 xff0c 只有20G xff0c 需要添加磁盘扩容到80G df lh Filesystem Size Used Avail Use Mounted on dev
  • 暑假实训的体会与感受_11-java-张玥

    暑假实训的体会与感受 我校为了丰富学生的社会经验 xff0c 暑假制定了实训计划 暑假实训 对我来说是很陌生的 xff0c 到大学以来我第一次接触 xff0c 当时知道这个通知的时候并不是很感兴趣 xff0c 实训完之后才知道真是博大精深啊
  • 这是一个失败的程序员

    写程序至今 xff0c 未入门 xff0c 什么都不懂 xff01
  • 【软,码】完成并发布FLV播放器

    经过一天的努力 xff0c 终于完成了FLV播放器的优化工作 xff0c 并于刚才 xff08 2007年8月5日 9点一刻 xff09 发布成功了 除发布在本站以外 xff0c 在华军也放了一个 暂时命名为 红鱼X的FLV播放器 xff0
  • 【翻】【官方文章】完整的Flash Object参考

    这篇参考翻译自Adobe官方网站提供的技术说明 xff08 点击到官方参考 xff09 并在文末添加了文中未指明的重要信息 内容如下 xff1a 涵盖的内容 xff1a 一 必须的属性 xff1b 二 可选的属性 xff1b 三 活动内容J
  • 【软,码】发布XML/(X)HTML文本化工具

    刚才本来打算把这个工具的代码贴在这里的 xff0c 可是忙活了半天 xff0c 却没有贴成功 xff0c 真让人泄气 来CSDN NET安家是这两天的事情 xff0c 还不是太熟悉它的操作环境 只好再熟悉一下 xff0c 慢慢来了 这是一款