gpt4 book ai didi

java - 当节点也有内部节点时,有没有办法映射节点的值?

转载 作者:行者123 更新时间:2023-12-04 06:21:28 25 4
gpt4 key购买 nike

我目前正在使用 JAXB 注释,这在大多数情况下都很好用。但是,我遇到了一些我无法弄清楚如何处理/创建注释的事情。我有以下 XML:

   <animals>
<animal>
cat
<age>5</age>
<color>red</color>
</animal>
</animals>

有没有一种方法可以让我从 XML 中获取“ cat”而不获取“ 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

最佳答案

尝试这样的事情:

@XmlRootElement(name = "animals")
public class Animals {

@XmlElement(name = "animal")
List<Animal> animals;
}

public class Animal {

@XmlMixed
List<Object> content;
}

现在, content领域 Animal将包含 String 的混合和 JAXBElement对象。您需要在运行时检查它们以提取您想要的位。

关于java - 当节点也有内部节点时,有没有办法映射节点的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6499449/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com