过滤xml中的非法字符串
一般xml中如果含有&等字符,可以通过CDATA来过滤,但是含有一些不认识的特殊字符时候就会不起作用,下面是从别人那儿拿来的一个过滤方
法,过滤xml中的非法字符:
//XML标准规定的无效字节为:
/*
0×00 – 0×08
0×0b – 0×0c
0×0e – 0×1f
*/
//所以很简单,输出的时候过滤这些字符就万无一失了,下面是PHP的实现。
/* PHP 实现 */
function XmlSafeStr($s)
{
return preg_replace(“/[\\x00-\\x08\\x0b-\\x0c\\x0e-\\x1f]/”,”,$s);
}
W3C的XML规范中关于字符的定义请参看这里:http://www.w3.org/TR/2004/REC-xml-20040204
/#charsets。
过滤非法字符对应的Java版本如下:
public
String
filter(
String
s)
{
return
s.replaceAll
(
"[\\
x00-\\
x08\\
x0b-\\
x0c\\
x0e-\\
x1f]"
, ""
)
;
}
相关文档:
在
SQLServer2005
中对
XML
的处理功能显然增强了很多,提供了
query(),value(),exist(),modify(),nodes()
等函数。
关于
xml
,难以理解的不是
SQLServer
提供的函数,而是对
xml
本身的理解,看似很简单的文件格式,处理起来却是非常困难的。本文只是初探一下而已。
详见
SQLServer
联机帮助:
主题
说 ......
XML的四种解析器原理及性能比较 ......
今天继续讲XML,争取在下午5点前占领XML高地。一共三个主要内容:SAX解析技术,DOM4J和SCHEMA。
首先是SAX解析技术:SAX采用事件处理的方式解析XML文件。利用 SAX 解析 XML 文档,涉及两个部分:解析器和事件处理器。
解析器负责读取 XML 文档,并向事件处理器发送事件
事件处理器负责对事件做出相应,对传递的 XML 数据 ......
SGML过于复杂,关键之处还在于主流浏览器厂商不支持SGML,web应用很好
Little version:XML
html => xhtml =>xml可以理解成是一个过渡的过程
SGML的设计理念就是把文本的内容和样式分开,自然xml也是如此。
xml一般包括以下文件:
DTD-->schema(xsd) 定义文档结构等(内容)
CSS-->XSLT (样式)
xml ---- ......
jaxp是sun公司的解析xml文档的api,他支持用dom和sax两种方法解析一个xml文档.
dom方法是解析引擎将整个xml文档装载到内存中作为一个document对象,dom方法得到一个对象就知道所有的节点
增删改查很方便,缺点是要装载整个xml文档,如果xml文档很大,效率就比较低
sax方法是采用事件作为驱动的,遇到一个标签是一个事件,读到标 ......