Usuń wiele węzłów z pliku XML za pomocą sax i java
Jestem nowy w analizowaniu XML przy użyciu parsera Java i SAX. Mam naprawdę duży plik XML i ze względu na jego rozmiar zalecono mi użycie parsera SAX. Skończyłem analizować część moich zadań i działa zgodnie z oczekiwaniami. Pozostało jedno zadanie z zadaniem XML: usuwanie / aktualizowanie niektórych węzłów na żądanie użytkownika.
Jestem w stanie znaleźć wszystkie tagi po ich nazwach, zmienić ichdata
atrybuty itp. Jeśli jestem w stanie to zrobić za pomocą SAX, usuwanie również może być możliwe.
Przykładowy XML opisuje niektóre funkcje w niektórych przypadkach. Dane wejściowe użytkownika są nazwami „przypadków” (case1
, case2
).
<ruleset>
<rule id="1">
<condition>
<case1>somefunctionality</case1>
<allow>true</allow>
</condition>
</rule>
<rule id="2">
<condition>
<case2>somefunctionality</case2>
<allow>false</allow>
</condition>
</rule>
</ruleset>
Jeśli użytkownik chce usunąć jeden z tych przypadków (na przykładcase1
) nie tylkocase1
tag, kompletnyrule
tag musi zostać usunięty. Jeślicase1
ma zostać usunięty, XML stanie się:
<ruleset>
<rule id="2">
<condition>
<case2>somefunctionality</case2>
<allow>false</allow>
</condition>
</rule>
</ruleset>
Moje pytanie brzmi, czy można to zrobić za pomocą SAX? W tym momencie nie mogę używać DOM ani żadnego innego parsera. Jeszcze inna opcja jest jeszcze gorsza: wyszukiwanie ciągów. Jak można to zrobić za pomocą SaxParser?