1

loadFromXMLクラスのメソッドを使用しjava.util.Propertiesて、いくつかのアプリケーション パラメーターを含む 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 プロパティ ファイルでそのような値を使用する方法はありますか?

4

1 に答える 1

5

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>
于 2012-08-03T13:25:02.707 に答える