Каков наилучший метод для синтаксического анализа нескольких дискретных пользовательских XML-документов с помощью Java?Лучший способ проанализировать различные пользовательские XML-документы в Java
ответ
Вы должны использовать org.xml.sax.XMLReader
(http://docs.oracle.com/javase/7/docs/api/org/xml/sax/XMLReader.html).
В принципе, у вас есть два основных метода XML разбора в Java:
- SAX, где вы используете handler для только захватить то, что вы хотите в вашем XML и канавы остальных
- DOM, который анализирует ваш файл все время и позволяет вам захватывать все элементы более древовидным образом.
Еще один очень полезный метод анализа XML, хотя и немного более свежий, чем эти, и включен в JRE только с Java6, равен StAX. StAX был задуман как медиальный метод между древовидной структурой DOM и основанным на событиях SAX. Это очень похоже на SAX в том, что синтаксический анализ очень больших документов прост, но в этом случае приложение «вытаскивает» информацию из анализатора, а не синтаксический анализ «pushing» событий в приложение. Вы можете найти больше объяснений по этому вопросу here.
Итак, в зависимости от того, чего вы хотите достичь, вы можете использовать один из этих подходов.
скопирован из моего ответа на дублирующую тему, чтобы предоставить больше информации о различных методах –
Если вам нужно только разобрать, я бы рекомендовал использовать библиотеку XPath. Вот хорошая ссылка: http://www.ibm.com/developerworks/library/x-javaxpathapi.html
Но вы можете захотеть превратить XML-объекты в объекты, а затем небо - это предел. Для этого вы можете использовать XStream, это большой библиотеки, которые я использую много
Используйте dom4j библиотеки
Первое чтение документа
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;
}
}
Затем с помощью XPATH, чтобы добраться до значений, которые необходимо
public void get_author(Document document) {
Node node = document.selectSingleNode("//AppealRequestProcessRequest/author");
String author = node.getText();
return author;
}
Ниже приведен код извлечения значения с использованием 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. Java - лучший способ проанализировать URL ресурса RESTful
- 2. Лучший способ проанализировать аргументы в обратном вызове
- 3. Лучший способ проанализировать скребковые данные
- 4. Лучший способ проанализировать строки времени
- 5. Лучший способ обрабатывать ошибки nodejs и предоставлять различные пользовательские сообщения.
- 6. Лучший способ проанализировать файл в Objective-c
- 7. Лучший способ проанализировать файл WSDL в JavaScript
- 8. лучший способ проанализировать безопасность строки в валюте?
- 9. EWS Java API 1.2 - лучший способ проанализировать тело письма
- 10. Лучший способ проанализировать даты с электронной почты
- 11. Лучший способ проанализировать сходство двух наборов данных
- 12. Лучший способ разбора Java в Java
- 13. лучший способ проанализировать аналитику, чтобы найти referrer?
- 14. Лучший способ сохранить пользовательские настройки
- 15. Лучший способ в SQL Server 2012 проанализировать строку фиксированной ширины?
- 16. Лучший способ скинуть различные кнопки в iOS?
- 17. Лучший способ сохранить пользовательские параметры в C#
- 18. лучший способ сохранить пользовательские «избранное» в MySQL
- 19. Пользовательские пользовательские страницы пользователя - лучший способ собрать в php
- 20. Лучший способ проанализировать XML в C# в отношении производительности
- 21. Лучший способ использовать различные макеты viewCell
- 22. Есть ли лучший способ проанализировать файл в python?
- 23. Есть ли лучший способ проанализировать запрос mongodb в go?
- 24. Лучший способ проанализировать результат, поступающий в приложение iPhone
- 25. Лучший способ показать различные проекты на портфолио
- 26. Лучший способ экспорта Java
- 27. Лучший способ визуализации java?
- 28. Java Recursion лучший способ?
- 29. Лучший способ анимации в Java?
- 30. Лучший способ ожидания в Java
Покажите нам, как далеко у вас есть - мы не собираемся писать это для вас. Вы хотите сделать это с помощью DOM, SAX или другого? Что вы пробовали до сих пор? В каких учебниках/документах вы посмотрели? – mdm
Используйте java dom api или sax для разбора xml. Дайте более конкретную структуру xml. – 0xAX
Попробуйте сопоставить [castor] (http://www.castor.org/xml-mapping.html). – nIKUNJ