什么是解析器使用Stax到DOM?

时间:2016-03-29 21:59:13

标签: java xml parsing

我有一份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> 
      .......

1 个答案:

答案 0 :(得分:1)

关于内存和速度,当你拥有一个巨大的XML时,最好使用SAX / StAX而不是DOM解析器。这是因为DOM解析器会将完整的XML加载到内存中并构造一个占用更多内存的树。另一方面,SAX / StAX不加载文件,一次只扫描一个XML元素。