XML非法属性值

时间:2011-11-18 15:46:03

标签: java html xml sax

我在java中使用SAX解析器来读取一些XML。我给它的XML有问题,导致解析失败。以下是错误消息:

11-18 10:25:37.290: W/System.err(3712): org.xml.sax.SAXParseException: Illegal: "<" inside attribute value (position:START_TAG <question text='null'>@1:23 in java.io.InputStreamReader@4074c678)

我有一种感觉,它不喜欢我在XML中的字符串中有一些HTML标签的事实。我认为从语法角度来看,引号内的任何内容都会被忽略。此外,在这里使用单引号是否有效?这是一个例子:

<quiz>
    <question text="<img src='//files/alex/hilltf.PNG' alt='hill' style='max-width:400px' />  is represented on map by cut. ">
        <answer text="1"/>
        <answer text="2" correct="true"/>
    </question>
</quiz>

2 个答案:

答案 0 :(得分:5)

您需要转义<属性值中的text。由于XML使用&lt;和&gt;为了表示标签,除非转义或包含在CDATA标签中(这不是属性值的选项),否则它在内容中是非法的。

答案 1 :(得分:4)

错误消息是正确的。 <必须是标记的开头,并且不能出现在字符串中。它必须是&lt;。我不相信引用是个问题。