Jaka jest najlepsza metoda analizy wielu różnych, nieciągłych, niestandardowych dokumentów XML za pomocą Java?Najlepsza metoda do analizy różnych niestandardowych dokumentów XML w Javie
Odpowiedz
Będziesz chciał użyć org.xml.sax.XMLReader
(http://docs.oracle.com/javase/7/docs/api/org/xml/sax/XMLReader.html).
Zasadniczo istnieją dwie główne metody analizowania XML w Javie:
- SAX, gdzie używasz handler do tylko chwycić co chcesz w formacie XML i rów odpoczynku
- DOM, który analizuje swoje plik cały czas i pozwala pobrać wszystkie elementy w bardziej przypominający drzewa sposób.
Inną bardzo użyteczną metodą analizowania XML, choć nieco nowszą od tej, i włączoną do JRE tylko od wersji Java 6, jest StAX. StAX został pomyślany jako metoda medialna między drzewem opartym na DOM a podejściem SAX opartym na zdarzeniach. Jest to bardzo podobne do SAX-a, ponieważ parsowanie bardzo dużych dokumentów jest łatwe, ale w tym przypadku aplikacja "pobiera" informacje z analizatora składni, zamiast parsowania "pchających" zdarzeń do aplikacji. Możesz znaleźć więcej wyjaśnień na ten temat here.
Tak więc, w zależności od tego, co chcesz osiągnąć, możesz użyć jednego z tych podejść.
skopiowałem z mojej odpowiedzi na duplikat wątku, aby dostarczyć więcej informacji o różnych metodach –
Jeśli potrzebujesz tylko analizować, to polecam używanie biblioteki XPath. Oto ładne odniesienie: http://www.ibm.com/developerworks/library/x-javaxpathapi.html
Ale może warto rozważyć zamianę obiektów XML na obiekty, a następnie niebo jest granicą. Do tego można użyć XStream, to jest wielką bibliotekę którego używam dużo
Użyj dom4j biblioteki
Najpierw należy przeczytać dokument
import java.net.URL;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.io.SAXReader;
public class Foo {
public Document parse(URL url) throws DocumentException {
SAXReader reader = new SAXReader();
Document document = reader.read(url);
return document;
}
}
Następnie za pomocą XPath do dostać się do wartości, które trzeba
public void get_author(Document document) {
Node node = document.selectSingleNode("//AppealRequestProcessRequest/author");
String author = node.getText();
return author;
}
Poniżej znajduje się kod wyodrębniania niektórych wartości wartości za pomocą vtd-xml.
import com.ximpleware.*;
public class extractValue{
public static void main(String s[]) throws VTDException, IOException{
VTDGen vg = new VTDGen();
if (!vg.parseFile("input.xml", false));
VTDNav vn = vg.getNav();
AutoPilot ap = new AutoPilot(vn);
ap.selectXPath("/aa/bb[name='k1']/value");
int i=0;
while ((i=ap.evalXPath())!=-1){
System.out.println(" value ===>"+vn.toString(i));
}
}
}
- 1. Android: najlepsza biblioteka analizy XML?
- 2. Metoda analizy XML systemu Android
- 3. analizowania składni dokumentów XML w Javie duży
- 4. Java dołączanie dokumentów XML do istniejących dokumentów
- 5. Standardowa metoda parsowania dokumentów XML bez pobierania DTD
- 6. Najbardziej efektywny sposób analizy Xml
- 7. Najlepsza asynchroniczna metoda
- 8. Najlepsza praktyka do przechowywania ogromnych list danych w Javie
- 9. Jak używać Sinatry do serwowania dokumentów XML?
- 10. Narzędzie analizy zrzutu wątków/metoda
- 11. Analizy analiz nie śledzą zdarzeń niestandardowych
- 12. Tworzenie pulpitu wizualizacji danych/analizy w Javie
- 13. repaint() Metoda w Javie
- 14. Błąd analizy XML niezgodny tag
- 15. Zapis do pliku XML w Javie
- 16. Najprostszy sposób do kwerendy XML w Javie
- 17. Typowa metoda w Javie bez rodzajowy argumentu
- 18. Łączenie dwóch pól z różnych dokumentów w MongoDB
- 19. Błąd analizy XML w konsoli programistów Firefoksa
- 20. Ścieżka pobierania moich dokumentów w Javie
- 21. najlepsza metoda na tle przesyłającej w Android
- 22. Metoda łączenia/zakotwiczenia w Javie
- 23. asmack - odbieranie niestandardowych wiadomości XML ||
- 24. Jaka jest najlepsza biblioteka matematyki do użycia w java?
- 25. Jaka jest najlepsza metoda w Pythonie?
- 26. Node.js - Najlepsza metoda emisji zdarzeń z modułów
- 27. Która metoda jest najlepsza do przekierowania po zalogowaniu w FOSUserBundle
- 28. Czytanie CDATA XML w Javie
- 29. Unikać XML całkowitą analizy: jeśli pole puste
- 30. Metoda fabryki dla obiektu Pythona - najlepsza praktyka
Pokaż nam, jak daleko masz - nie zamierzamy tego napisać dla Ciebie. Czy chcesz to zrobić z DOM, SAX lub innymi? Które próbowałeś do tej pory? Które samouczki/dokumentacja obejrzeliście? – mdm
Używaj java dom api lub sax do parsowania xml. Daj więcej konkretnej struktury xml. – 0xAX
Spróbuj mapować [castor] (http://www.castor.org/xml-mapping.html). – nIKUNJ