2011-11-18 88 views
0

我在java中使用SAX解析器来读取一些XML。我给它的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 [email protected])

我有一种感觉,它不喜欢的事实,我在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> 
+1

你的问题到底是什么?如果XML有问题,难道你不希望解析器告诉你它们吗? –

回答

4

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

5

你需要躲避text属性值内<。由于XML使用<和>来表示标签,因此除非转义或包含在CDATA标签中(这不是属性值的选项),否则它的内容是非法的。