xml中字符的转义

原创 2004年06月29日 10:51:00

                                                                                   作者:bluesky35(蓝天)

在编写servlet时,遇到如下情况:

<web-app>

 <!-- Servlet -->
 <servlet>
  <servlet-name>servlet</servlet-name>
  <servlet-class>com.logon.src.logon</servlet-class>
  <init-param>
   <param-name>param</param-name>
   <param-value></param-value>
  </init-param>
 </servlet>

 <!-- Mapping -->
 <servlet-mapping>
  <servlet-name>servlet</servlet-name>
  <url-pattern>servlet/logon</url-pattern>
 </servlet-mapping>

</web-app>

如果在<param-value></param-value>中想使用"<"字符,<param-value><</param-value>,这样写的话,在web服务器启动并读入web.xml信息时会发生如下错误:

[INFO] Registry - -Loading registry information
[INFO] Registry - -Creating new Registry instance
[INFO] Registry - -Creating MBeanServer
[INFO] Http11Protocol - -Coyote HTTP/1.1をポート8080で初期化します
サービス Tomcat-Standalone を起動します
Apache Tomcat/4.1.27
[INFO] PropertyMessageResources - -Initializing, config='org.apache.struts.util.LocalStrings', returnNull=true
[INFO] PropertyMessageResources - -Initializing, config='org.apache.struts.action.ActionResources', returnNull=true
[INFO] PropertyMessageResources - -Initializing, config='org.apache.webapp.admin.ApplicationResources', returnNull=true
[ERROR] Digester - -Parse Fatal Error at line 11 column 18: The content of elements must consist of well-formed character data or markup. org.xml.sax.SAXParseException: The content of elements must consist of well-formed character data or markup.
 at org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source)
 at org.apache.xerces.util.ErrorHandlerWrapper.fatalError(Unknown Source)
 at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
 at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
 at org.apache.xerces.impl.XMLScanner.reportFatalError(Unknown Source)
 at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)
 at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
 at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
 at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
 at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
 at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
 at org.apache.commons.digester.Digester.parse(Digester.java:1548)
 at org.apache.catalina.startup.ContextConfig.applicationConfig(ContextConfig.java:282)
 at org.apache.catalina.startup.ContextConfig.start(ContextConfig.java:639)
 at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:243)
 at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:166)
 at org.apache.catalina.core.StandardContext.start(StandardContext.java:3568)
 at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1188)
 at org.apache.catalina.core.StandardHost.start(StandardHost.java:738)
 at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1188)
 at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:347)
 at org.apache.catalina.core.StandardService.start(StandardService.java:497)
 at org.apache.catalina.core.StandardServer.start(StandardServer.java:2190)
 at org.apache.catalina.startup.Catalina.start(Catalina.java:512)
 at org.apache.catalina.startup.Catalina.execute(Catalina.java:400)
 at org.apache.catalina.startup.Catalina.process(Catalina.java:180)
 at java.lang.reflect.Method.invoke(Native Method)
 at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:203)
并且在servlet中使用getInitParameter("param")无法取得"<"字符,那有没有办法能在xml中写"<"呢?

其实xml中要写"<",我们可以用html的标记来标识,如下:

<param-value>&lt;</param-value>

之后我们就可以在servlet中通过getInitParameter("param")读出"<"字符了,其它一些xml中的关键字也可以通过html标签读取出来,过程如下:

1.在web.xml中定义

2.在servlet端读取

XML中特殊符号,转义符号

XML文件中也有可能使用转义字符,这些转义字符在实际的使用过程如果不了解,很容易导致误解,尤其是一些通过解析xml文件获得密码等关键字的时候,在别的客户端或其他使用这个关键字的时候也要经过转换才能正确...
  • lsxploc
  • lsxploc
  • 2015年06月12日 11:31
  • 500

xml对特殊字符的处理(字符转义)

xml对特殊字符的处理(字符转义)
  • churk123
  • churk123
  • 2017年01月13日 17:09
  • 464

XML5个转义符

XML5个转义符:,&,”,©;的转义字符分别如下: < >& " '
  • tianlianchao1982
  • tianlianchao1982
  • 2016年06月11日 13:44
  • 4673

Xml文件必须转义的字符

Xml必须转义的字符
  • yzy1226466341
  • yzy1226466341
  • 2017年03月28日 11:57
  • 312

xml转义符规则

最近在写一个xml解析器,我百度xml转义符被坑过,为了防止更多的人被坑,所以写下这篇博客。 强制要求转义的符号只有两个 &与 1、转义符以 & 开始 2、转义符以 ; 结束 3、大小...
  • Gnorth
  • Gnorth
  • 2017年01月06日 09:30
  • 1009

Android中xml文件中空格转义符

空格:  
  • zhanzkw
  • zhanzkw
  • 2014年03月26日 09:28
  • 1462

xml文件中使用的转义字符

 XML文件中使用的转义字符不合法的XML字符必须被替换为相应的实体。如果在XML文档中使用类似"" 的字符, 那么解析器将会出现错误,因为解析器会认为这是一个新元素的开始。所以不应该象下面那样书写代...
  • zlkingdom
  • zlkingdom
  • 2008年12月11日 13:42
  • 6838

还原 xml转义字符

/**       * 还原字符串中特殊字符      */     public static String decodeString(String strData)     {     ...
  • kong_aspx
  • kong_aspx
  • 2012年12月18日 13:27
  • 1285

xml中字符的转义

  • zgqtxwd
  • zgqtxwd
  • 2008年04月25日 05:55
  • 494

XML中特殊字符的处理方式

项目中需要解析XML,发现前台
  • u011262156
  • u011262156
  • 2014年11月24日 13:42
  • 2585
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:xml中字符的转义
举报原因:
原因补充:

(最多只允许输入30个字)