我有一个XML字符串作为来自服务器的响应,带有一些开放标记,例如: 例如:
<Address1><Street>This caused error coz street is not closed</Address1>
<Address2>This displayed normal</Address2>
当我解析上面的xml字符串时,我得到了, org.xml.sax.SAXParseException: 必须收集元素类型“Street”。
注意:我无法更改服务器文件。
答案 0 :(得分:1)
首先,我认为您不应该使用无效的XML,因为它会导致不可预测的结果。最适合您的是更新服务器文件以获得有效的XML内容。
话虽如此,您可以使用Jsoup这是一个HTML解析器,可以帮助管理这种无效的XML。
对于您提供的示例:
String xml = "<Address1><Street>This caused error coz street is not closed</Address1><Address2>This displayed normal</Address2>";
Document doc = Jsoup.parse(xml, "", Parser.xmlParser());
Elements elements = doc.getElementsByTag("Address1");
System.out.println(elements.first().text());
// it will print: "This caused error coz street is not closed"
Elements elements2 = doc.getElementsByTag("Address2");
System.out.println(elements2.first().text());
// it will print: "This displayed normal"
Street
元素将被忽略。