首页 新闻 会员 周边

如何处理XML中的特殊字符

0
悬赏园豆:50 [已解决问题] 解决于 2009-11-12 09:50

有个文本框, 在里面输入

<?xml version="1.0" ?>

<note>
<to>George****</to>
<from>John-----</Ffrom>
<heading>Reminder++++</heading>
<body>Don't forget the meeting!</body>
</note>

现在点击按钮。 过滤掉XML中****,----,++++

并显示到另一个文本框内

如下

<?xml version="1.0" ?>

<note>
<to>George</to>
<from>John</Ffrom>
<heading>Reminder</heading>
<body>Don't forget the meeting!</body>
</note>

 

请问如何处理?

jun.ma的主页 jun.ma | 初学一级 | 园豆:50
提问于:2009-11-11 21:40
< >
分享
最佳答案
0

如果特殊字符是已知的,那么直接Replace 就可以了

收获园豆:10
Mr雨 | 小虾三级 |园豆:1199 | 2009-11-12 09:29
其他回答(2)
0

正则

收获园豆:10
woody.wu | 园豆:3621 (老鸟四级) | 2009-11-11 22:03
0

这是个可简单可复杂的问题。针对你提问中的特点,我编写了一个DEMO,只用了3分钟,实现代码也非常短小精悍,但是其中对于你来说需要了解的东西其实还是蛮多的。

这里是我编写示例的地址:http://media.pec365.com/rainnoless/demo1.html

我给出DEMO中整个页面的代码如下,然后简要的解释下其中涉及到那些知识点,你需要如何去做,代码如下:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 TRansitional//EN" "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dTD">
<html>
<head>
<title>DEMO1</title>
</head>
<body>
<textarea id="taOldXML" cols="100" rows="16" title="请输入处理XML文件" style="background-color: #c5c5c5; color: #102345;">
<?xml version="1.0" ?>
<note>
<to>George****</to>
<from>John-----</Ffrom>
<heading>Reminder++++</heading>
<body>Don't forget the meeting!</body>
</note>
</textarea>
<input type="button" id="btnProcessing" value="剔除特殊字符" />
<hr />
<textarea id="taNewXML" cols="100" rows="16" title="处理后的XML文件" style="background-color: #c4c4c4;
color: #818;"
></textarea>

<!-- jQuery 的示例代码
<script type="text/javascript" language="javascript" src="javascript/jquery-1.3.2.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$("#btnProcessing").click( function() {
$("#taNewXML").get(0).value = $("#taOldXML").get(0).value.replace(/(\*+|\-+|\++)/g, '');
});
});
</script>
-->

<script type="text/javascript">
$
= function(id) {
if ( document.getElementById ) {
return document.getElementById(id);
}
};

window.onload
= function() {
$(
"btnProcessing").onclick = function() {
$(
"taNewXML").value = $("taOldXML").value.replace(/(\*+|\-+|\++)/g, '');
};
};
</script>

</body>
</html>

 



要实现你需要的功能,首先第一点你需要选择什么语言来实现自己的功能,我这里选择的前端脚本语言javascript,方便快捷。

1.你需要了解下 javascript,需要了解 javascript 的replace函数,类似于C#的string类的replace方法。

2.你需要了解 javascript 的 regex 对象,需要了解正则的基本知识,这样你就可以扩展这个示例来满足你真是环境下的需求。给你一个30分钟学会正则的教程地址:http://unibetter.com/deerchao/zhengzhe-biaodashi-jiaocheng-se.htm

3.在楼上给出的学习地址中,有一个老外基于C#的正则类编写的小工具,检验你编写的正则是否满足自己的意图和需求,很可惜该工具在输入中文时全部乱码,谁叫是老外编写的呢?不过基于javascript在线类似工具很多,google一下吧,顺便可以学习学习。

4.处理文本是正则的强项,他们就是为文本处理而生的,所以有必要学习,如果需要系统学习正则表达式,首推一本奇书:《精通正则表达式X》,无论哪个版本都可,不过网络中多是英文版的CHM或者PDF,不熟悉正则的话,看起来可能有点吃力。

5.有了方向,以后就多google吧,答案无处不在,呵呵。

收获园豆:30
rainnoless | 园豆:613 (小虾三级) | 2009-11-12 00:04
TKS
支持(0) 反对(0) jun.ma | 园豆:50 (初学一级) | 2009-11-12 09:51
很详细
支持(0) 反对(0) jun.ma | 园豆:50 (初学一级) | 2009-11-12 09:51
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册