我有一份250 000记录的XML文件。什么解析器最适合这个XML,Stax或DOM?
SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="https://webapi.allegro.pl/service.php">
<SOAP-ENV:Body>
<ns1:doGetCatsDataResponse>
<ns1:catsList>
<ns1:item>
<ns1:catId>26013</ns1:catId>
<ns1:catName>Antyki i Sztuka</ns1:catName>
<ns1:catParent>0</ns1:catParent>
<ns1:catPosition>0</ns1:catPosition>
<ns1:catIsProductCatalogueEnabled>0</ns1:catIsProductCatalogueEnabled>
</ns1:item>
<ns1:item>
<ns1:catId>98553</ns1:catId>
<ns1:catName>Bilety</ns1:catName>
<ns1:catParent>0</ns1:catParent>
<ns1:catPosition>1</ns1:catPosition>
<ns1:catIsProductCatalogueEnabled>0</ns1:catIsProductCatalogueEnabled>
</ns1:item>
<ns1:item>
.......
答案 0 :(得分:1)
关于内存和速度,当你拥有一个巨大的XML时,最好使用SAX / StAX而不是DOM解析器。这是因为DOM解析器会将完整的XML加载到内存中并构造一个占用更多内存的树。另一方面,SAX / StAX不加载文件,一次只扫描一个XML元素。