我目前正在使用 JAXB 注释,它适用于大多数情况。但是,我遇到了一些我无法弄清楚如何处理/创建注释的东西。我有以下 XML:
<animals>
<animal>
cat
<age>5</age>
<color>red</color>
</animal>
</animals>
有没有办法我可以直接从cat
XML 中获取“”而不获取“ 5
”或“ red
”?
这是我到目前为止所拥有的:
@XmlRootElement(name = "animals")
public class Animal {
@XmlElement(name = "animal")
String type;
}
但是当我解组这个时,我只会得到一个空字符串。
任何帮助,将不胜感激!
编辑
这是我正在尝试做的一个完整的工作示例:
@XmlRootElement(name = "animals")
private static class Animals {
@XmlElement(name = "animals")
String animalType;
}
// This code is in "main"
final String animalsXml = "<animals><animal>cat<color>red</color><age>5</age></animal></animals>";
JAXBContext context = JAXBContext.newInstance(Animals.class);
Unmarshaller um = context.createUnmarshaller();
ByteArrayInputStream bais = new ByteArrayInputStream(animalsXml.getBytes("UTF-8"));
Animals animals = (Animals)um.unmarshal(bais);
boolean animalIsCat = animals.animalType == null ? false : animals.animalType.equalsIgnoreCase("cat");
assert animalIsCat;
// end code in main