[英]Creating XMLStreamReader for a string with "&" character
我想解组其中包含“&”字符的 xmlString。
XMLInputFactory xif = XmlUtils.newXMLInputFactory();
String test = "<Res>Abc & Def</Res>";
StringReader sr = new StringReader(test);
try {
XMLStreamReader reader = xif.createXMLStreamReader(sr);
JAXBContext jaxbContext = JAXBContext.newInstance(BluelineReprintInvoiceResponseData.class);
Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();
Object o = unmarshaller.unmarshal(reader);
} catch(Exception ex) {
ex.printStackTrace();
}
有没有办法在不使用 replace/replaceAll 替换字符串中的 '&' 字符的情况下解组字符串?
有没有办法在不使用
replace
/replaceAll
替换字符串中的&
字符的情况下解组字符串?
基本上没有,因为那是无效的 XML。 在这种情况下,不允许使用裸 & 符号。 任何符合标准的 XML 解析器在遇到&
然后找不到对应的;
时都会给你一个解析错误。
正确的解决方案是在其源头修复(所谓的)XML。 生成该字符串为 XML 的原因是错误的。 如果它是由人输入的,则应在输入时验证 XML。
请注意,如果您尝试使用字符串替换自动“纠正”损坏的 XML 中的裸 & 符号,则可能会造成其他损坏; IE
自动更正代码需要了解 & 符号出现的上下文。 使用正则表达式会很困难。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.