【问题标题】:XML Properties File Containing a Value with Tags包含带有标签的值的 XML 属性文件
【发布时间】:2012-08-03 13:21:09
【问题描述】:

我正在使用java.util.Properties 类的loadFromXML 方法来解析包含一些应用程序参数的XML 文件。这些参数之一的值是一个 HTML 字符串,如下所示:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
    <entry key="THREAD_COUNT">4</entry>
    <entry key="SENDER_EMAIL">MAIL@SOMESITE.COM</entry>
    <entry key="EMAIL_SUBJECT">SAMPLE SUBJECT</entry>
    <entry key="EMAIL_BODY"><span style='font-family : Monotype Corsiva ; font-size:14pt'>SAMPLE TEXT</span></entry>
</properties>

当我有这样一个值时,loadFromXML 方法会抛出以下异常:

java.util.InvalidPropertiesFormatException: org.xml.sax.SAXParseException: Element type "span" must be declared.
    at java.util.XMLUtils.load(XMLUtils.java:59)
    at java.util.Properties.loadFromXML(Properties.java:852)
    at com.test.mail.ConfigReader.<init>(ConfigReader.java:27)
    at com.test.mail.ConfigReader.getInstance(ConfigReader.java:43)
    at com.test.mail.SendMail.readParameters(SendMail.java:64)
    at com.test.mail.SendMail.startJob(SendMail.java:29)
    at com.test.mail.SendMail.main(SendMail.java:24)

有没有办法在 XML 属性文件中使用这样的值?

【问题讨论】:

    标签: java xml properties tags sax


    【解决方案1】:

    在您的 xml 中使用 CDATA 部分,将其标记为数据,否则它将被解析为您的 xml 的一部分:

    http://www.w3schools.com/xml/xml_cdata.asp

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
    <properties>
        <entry key="THREAD_COUNT">4</entry>
        <entry key="SENDER_EMAIL">MAIL@SOMESITE.COM</entry>
        <entry key="EMAIL_SUBJECT">SAMPLE SUBJECT</entry>
        <entry key="EMAIL_BODY"><![CDATA[<span style='font-family : Monotype Corsiva ; font-size:14pt'>SAMPLE TEXT</span>]]></entry>
    </properties>
    

    【讨论】:

      猜你喜欢
      • 2013-05-13
      • 2014-01-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-10
      相关资源
      最近更新 更多