gpt4 book ai didi

java - StAX - 是否可以将 XML 节点转换为 HashMap(或带有 hashmap 的 POJO 类)

转载 作者:行者123 更新时间:2023-12-01 13:57:36 24 4
gpt4 key购买 nike

我正在使用 Streaming XML API 来解析一个巨大的 XML 文件(大小~10 M,#objects ~ 100K)..

是否可以转换 XML 节点,如 -

<A>
<C>b </C>
<D>c </D>
<E>d </E>
<F>e </F>
<G>f </G>
</A>

到 Java HashMap?或者以 HashMap 作为唯一成员的 POJO 类..使得该 HashMap 包含所有名称-值对..

编辑 - 我需要使用 Streaming API 来解析 XML。我想做这样的事情 -

//reach a start element
while(reader.isStartElement());
//until u reach end element
'XMLNode' value = getNodeValue(reader);
//convert XMLNode to POJO

//getNodeValue looks like this
while(reader.isEndElement()) {
//read file
//collect all characters until end element
}
//produce XMLNode

最佳答案

如果您知道根元素名称,则可以使用 Jackson 进行此操作。你需要一个像这样的 POJO:

@JacksonXmlRootElement(localName = "A")
public static class POJO{

private Map<String,String> map = new TreeMap<String,String>();

@JsonAnyGetter
public Map<String, String> get() {
return map;
}

@JsonAnySetter
public void set(String name, String value) {
map.put(name, value);
}

}

然后这样读:

    ObjectMapper xmlmapper = new XmlMapper();        
POJO p2 = xmlmapper.readValue(xml,POJO.class);

我刚刚在我的博客上发布了完整的代码:http://demeranville.com/deserialising-json-or-xml-to-a-map-using-java/ (它也适用于 JSON)

关于java - StAX - 是否可以将 XML 节点转换为 HashMap(或带有 hashmap 的 POJO 类),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19542095/

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