我在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>
答案 0 :(得分:5)
您需要转义<
属性值中的text
。由于XML使用&lt;和&gt;为了表示标签,除非转义或包含在CDATA标签中(这不是属性值的选项),否则它在内容中是非法的。
答案 1 :(得分:4)
错误消息是正确的。 <
必须是标记的开头,并且不能出现在字符串中。它必须是<
。我不相信引用是个问题。