我想使用XStream導入大型XML文件(〜1 GB)。我想用ObjectInputStream
來讀取它們,但我需要跳過第一個元素,然後向下移動幾個元素(請參閱下面的內容,我需要導入bag_LVC:Woonplaats
元素)。XStream:如何讓xstream.createObjectInputStream()尋找特定元素
我希望有某種方法可以爲xstream提供一個Reader
或者一個InputStream
,這個方法一直在尋找我感興趣的元素。我試圖創建自己的HierarchicalStreamReader
並將其移動到正確的元素,但你只能上下移動:
HierarchicalStreamReader xpp = new XppDriver().createReader(xmlFile);
xpp.moveDown(); // moves to <xb:antwoord>
xpp.move(); // **would move to <xb:producten>, but it private**
xpp.moveDown(); // moves to <xb:producten>
xpp.moveDown(); // moves to <product_LVC:LVC-product>
st = xstream.createObjectInputStream(xpp);
BagWoonplaats bw = (BagWoonplaats) st.readObject();
是否XStream的或任何XPP司機有什麼辦法讓你尋找到我的元素的利益?
XML
<xb:BAG-Extract-Deelbestand-LVC>
<xb:antwoord>
<xb:vraag>
<!-- more elements here -->
</xb:vraag>
<xb:producten>
<product_LVC:LVC-product>
<bag_LVC:Woonplaats>
<!-- elements used as fields -->
</bag_LVC:Woonplaats>
<bag_LVC:Woonplaats>
<!-- elements used as fields -->
</bag_LVC:Woonplaats>
<!-- and so on -->