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

作者: 2hei 发表于2010年4月22日 19:43
版权声明: 可以转载, 转载时务必以超链形式标明文章原始出处和作者信息及版权声明
http://www.2hei.net/mt/2010/04/xml-specifications.html

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)

| | Comments (2) | TrackBacks (0)

2 Comments

Jimmy 说:

收录一下,赞~~

It took me a while to search on the web, only your site unfold the fully details, bookmarked and thanks again.

- Kris

发表一个评论

关于这篇文章

这篇文章由2hei2010年4月22日 19:43发布.

上一篇:cnnic根证书(root)的不可信与解决办法

下一篇:SHELL中的2进制、10进制、8进制、16进制之间的转换

回到首页 或者查看归档文章

  • Powered by FeedBurner
  • Add to Google Reader or Homepage
  • Add to My AOL
  • Subscribe in NewsGator Online
  • del.icio.us/2heidel.icio.us/2hei
  • Subscribe to feed feeds