在JAXB(Java Architecture for XML Binding)中,如果需要忽略意外的XML元素,可以使用@XmlAnyElement
注解。以下是一个简单的示例:
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAnyElement;
import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
public class MyObject {
@XmlAnyElement
private Object any;
public Object getAny() {
return any;
}
public void setAny(Object any) {
this.any = any;
}
}
@XmlAnyElement
注解来忽略意外的XML元素:import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Unmarshaller;
import java.io.StringReader;
public class Main {
public static void main(String[] args) {
String xml = "<myObject><unexpectedElement>Some data</unexpectedElement></myObject>";
try {
JAXBContext jaxbContext = JAXBContext.newInstance(MyObject.class);
Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();
MyObject myObject = (MyObject) unmarshaller.unmarshal(new StringReader(xml));
System.out.println("Parsed object: " + myObject.getAny());
} catch (JAXBException e) {
e.printStackTrace();
}
}
}
在这个示例中,@XmlAnyElement
注解允许我们将任何未知的XML元素作为Java对象处理。这样,我们可以在不抛出异常的情况下解析包含意外元素的XML文档。
推荐的腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云