我已经浏览了很多Stackoverflow页面和web来决定适合我的要求的解析器。 我需要在java中读取嵌套和大的xml文件,因此DOM解析器不适合。我的xml看起来如下(片段) -
<products>
<product>
<productCode></productCode>
<Code>3002191</Code>
<anotherCode></anotherCode>
<entityName>entityName value</entityName>
<entityName2>entityName value</entityName2>
<Type>value</Type>
<List>1</List>
<SecondCode>124</SecondCode>
<docInfo>
<name>value1</name>
<docName>value</docName>
<docId>045</docId>
<type>Full Name</type>
<class>value</class>
<docCode>123</docCode>
<date>07/12/2016</date>
<countries>
<country>India</country>
</countries>
<language>EN</language>
</docInfo>
<docInfo>
<name>value1</name>
<docName>value</docName>
<docId>1219</docId>
<type>Full Name</type>
<class>value</class>
<docCode>123</docCode>
<date>07/12/2016</date>
<countries>
<country>India</country>
</countries>
<language>EN</language>
</docInfo>
</product>
<product>
..
</product>
</products>
要求:我需要将产品信息存储到hashmap列表中,以便与其他xmls进行进一步处理。首先,我想使用Stax api来执行此操作。但是元素docInfo具有countries元素,因此可以为多个国家/地区提供多个文档,我无法向后解析以保存另一个文档(具有相同的文档信息但具有国家/地区)。如果我足够清楚,请告诉我
请让我知道哪种解析器可以很好地处理这种情况,我没有这个xml的任何模式。
非常感谢。
答案 0 :(得分:0)
要解析大量XML,最好使用SAX: https://docs.oracle.com/javase/tutorial/jaxp/sax/parsing.html
您实现了ContentHandler接口,您可以在解析docInfo和后续国家时提供所需的逻辑。