我想跳過除 first_name 、node100 及其子節(jié)點(diǎn)之外的所有節(jié)點(diǎn)。我有這個(gè) XML(實(shí)際上我有很多員工,每個(gè)員工標(biāo)簽都有很多節(jié)點(diǎn)): <employees> <employee> <first_name>John</first_name> <last_name>Doe</last_name> <age>26</age> </employee> <employee> <first_name>Peter</first_name> <last_name>Parker</last_name> <age>30</age> </employee> </employees>我能夠使用 Jackson FasterXML 閱讀。我創(chuàng)建了 2 個(gè) POJOS 來映射上面的 XML 結(jié)構(gòu) @JacksonXmlRootElement(localName = "employees") public final class Employees { @JacksonXmlElementWrapper(localName = "employee", useWrapping = false) private Employee[] employee;//ommiteed getter and setterspublic final class Employee { @JacksonXmlProperty(localName = "id", isAttribute = true) private String id; @JacksonXmlProperty(localName = "first_name") private String firstName; @JacksonXmlProperty(localName = "last_name") private String lastName; @JacksonXmlProperty(localName = "age") private int age;現(xiàn)在在生產(chǎn)中,xml 在節(jié)點(diǎn)內(nèi)有 1000 個(gè)節(jié)點(diǎn)<employee> <first_name>John</first_name> <last_name>Doe</last_name> <age>26</age> <node1> </node1> <node2> </node2> .. <node100> <values> <value> val1 </value> <value> val1 </value> <value> val1 </value> <value> val1 </value> </node100> </employee> <node100> is also inside 4-5 nodes (which i have not shown above).所以我的問題是如何讀取first_name、last_name和tag。我的 POJO 類的結(jié)構(gòu)應(yīng)該是什么?將 XML 轉(zhuǎn)換為 POJO 的代碼System.out.println( " hello");ObjectMapper objectMapper = new XmlMapper();// Reads from XML and converts to POJOEmployees employees = objectMapper.readValue( StringUtils.toEncodedString(Files.readAllBytes(Paths.get("C:\\Users\\91895\\Downloads\\File\\XmlFile.xml")), StandardCharsets.UTF_8), Employees.class);System.out.println(employees);
1 回答

浮云間
TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超4個(gè)贊
在您的類中定義要從 XML 讀取的元素。要忽略其他元素,請(qǐng)相應(yīng)地配置 ObjectMapper:
objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
添加回答
舉報(bào)
0/150
提交
取消