Я пытаюсь использовать XStream для импорта больших файлов XML (~ 1 ГБ).Я хочу использовать ObjectInputStream
для чтения их в потоковом режиме, но мне нужно пропустить первый элемент, а затем переместить пару элементов вниз (см. Ниже, мне нужно импортировать элементы bag_LVC:Woonplaats
).
Я ожидаю, что есть какой-то способ кормить 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 -->