当前位置: 首页 > resin > 正文

xml类型的配置文件包含特殊字符的处理

resin的配置文件类似xml,语法规范也遵循xml的写法,今天遇到了特殊字符的问题,数据库密码包含了特殊字符。
<init-param driver-name=”oracle.jdbc.driver.OracleDriver”/>
  <init-param url=”jdbc:oracle:thin:@localhost:1521:Test”/>
  <init-param user=”username”/>
  <init-param password=”123&(45aq”/>

</resource-ref>

#sh start_server.sh
Starting Resin on Thu, 22 Apr 2010 18:39:48 +0800 (CST)
com.caucho.xml.XmlParseException: /home/resin/conf/resin.conf:8: malformed entity ref at `(‘
        at com.caucho.xml.XmlParser.error(XmlParser.java:2769)
        at com.caucho.xml.XmlParser.parseCharacterReference(XmlParser.java:1002)
        at com.caucho.xml.XmlParser.parseValue(XmlParser.java:1192)
        at com.caucho.xml.XmlParser.parseAttributes(XmlParser.java:702)
        at com.caucho.xml.XmlParser.parseElement(XmlParser.java:603)
        at com.caucho.xml.XmlParser.parseNode(XmlParser.java:377)
        at com.caucho.xml.XmlParser.parseInt(XmlParser.java:248)
        at com.caucho.xml.AbstractParser.parse(AbstractParser.java:645)
        at com.caucho.util.Registry.parse(Registry.java:199)
        at com.caucho.util.Registry.parse(Registry.java:174)
        at com.caucho.server.http.ResinServer.init(ResinServer.java:311)
        at com.caucho.server.http.ResinServer.main(ResinServer.java:1176)

其原因并不是“(”引起的,罪魁祸首是“&”

解决办法是使用&amp;替换&
如:
  <init-param password=”123&amp;(45aq”/>

xml文件中其他的几个特殊字符做同样处理即可:
    * &amp; = & (ampersand)
    * &lt; = < (left angle bracket, less-than sign)
    * &gt; = > (right angle bracket, greater-than sign)
    * &quot; = ” (quotation mark)
    * &apos; = ‘ (apostrophe)

本文固定链接: http://2hei.net/xml_specifications.html | 2hei's site

该日志由 2hei 于2010年04月22日发表在 resin 分类下,
原创文章转载请注明: xml类型的配置文件包含特殊字符的处理 | 2hei's site

xml类型的配置文件包含特殊字符的处理:目前有2 条留言

  1. 板凳
    Jimmy:

    收录一下,赞~~

    2010-05-27 下午 10:30
  2. It took me a while to search on the web, only your site unfold the fully details, bookmarked and thanks again.
    – Kris

    2010-10-21 下午 4:06