Parser, aby analizować nieznany schemat XML w Javie
Próbowałem zrozumieć wszystkie inne odpowiedzi na temat stackoverflow. Ale nie mogę powiązać tych odpowiedzi z moim pytaniem.
Kiedy dzwonię do usługi sieciowej, otrzymuję
odpowiedź. Otrzymuję schemat do
response.getData (); (XML tabeli danych zawierającej wyniki.)
(zwracany typ String). Nie wiemy, jakie dane otrzymujemy w tym XML-u.
Muszę użyć parsera trzeciego, gdy podaję powyższy ciąg do jednej metody w tym parseru, musi zwrócić wszystkie elementy w tym XML, a następnie mogę wydrukować niezbędne elementy.
Nie chcę rozpocząć analizy samego XML. Czy istnieje sposób na to? (Czy w tym istnieje jakieś znaczenie?). Przepraszam, jeśli jestem całkowicie się mylący. (Korzystanie z
Axis2/Eclipse) (Edytowane)
Edytuj: Dodawanie kodu, który już próbowałem.
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
NodeList nodeList = null;
try {
String xml = res2.getResult().getRawData();
DocumentBuilder db = dbf.newDocumentBuilder();
Document document = db.parse(new ByteArrayInputStream(xml.getBytes()));
nodeList = document.getElementsByTagName("PhoneNumber");
NamedNodeMap attrib = document.getAttributes();
for (int i = 0; i < attrib.getLength(); i++) {
String nodeName = attrib.item(i).getNodeName();
//nodeName
String nodeValue = attrib.item(i).getNodeValue();
}
Ale nie jestem pewien, jaki jest numer telefonu z tym tagiem lub inną nazwą. Nie wiemy też, ile mamy tagów.
Dziękujemy za korzystanie z kodu z Syams, mogę wydrukować wszystkie węzły i odpowiednie wartości z XML. Teraz chcę go zapisać w Hashmapu z kluczem jako nazwę węzła i wartości węzła na liście.
Przykład XML:
<Docs>
<Doc>
<Id>12</Id>
<Phone>1234</Phone>
</Doc>
<Doc>
<Id>147</Id>
<Phone>12345</Phone>
<Locked>false</Locked>
<BID>2</BID>
<DocId>8</DocId>
<Date>2014-02-04T12:18:50.063-07:00</Date>
<Urgent>false</Urgent>
</Doc>
</Docs>
Nie znaleziono powiązanych wyników
Zaproszony:
Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się
2 odpowiedzi
Anonimowy użytkownik
Potwierdzenie od:
Anonimowy użytkownik
Potwierdzenie od:
Najlepszy parser XML dla Java
https://coderoad.ru/373833/. Przy użyciu przykładu XML
Przykładowy plik XML (books.xml)
https://msdn.microsoft.com/en-us/library/ms762271(v=vs.85).aspx
które pobrałem do folderu tymczasowego na moim dysku C:, możesz użyć natywnej biblioteki Java SAXParser. Oto przykładowa klasa, której możesz użyć do iteracji po wszystkich elementach XML. Utwórz klasę w swoim projekcie i wywołaj jej metodę analizy, na przykład:
Jest to klasa, którą możesz skopiować do swojego projektu, aby spróbować. Oczywiście zmodyfikuj według własnych potrzeb. Import musi wysłać Ci do odpowiednich stron API Java, takich jak
SAXParser, klasa
http://docs.oracle.com/javase/ ... .html
zacząć.