JDOM – это платформа синтаксического анализа XML на основе Java с открытым исходным кодом, построенная поверх DOM и SAX, а также объектная модель документа (DOM) представление XML-документа в памяти.
JDOM упрощает навигацию по XML-документам, предоставляя более простые API-интерфейсы и стандартный интерфейс сбора данных на основе Java. Если вы не возражаете против загрузки небольшой библиотеки для анализа XML-файла, API-интерфейсы JDOM просты в использовании.
- 1. Загрузите библиотеку JDOM
- 2. Чтение или анализ XML-файла (JDOM)
- 3. Читать или анализировать удаленный XML-файл (JDOM)
- 4. Строка, содержащая XML
- 5. Скачать Исходный Код
- 6. Рекомендации
1. Загрузите библиотеку JDOM
JDOM не является частью встроенных API Java, и нам необходимо загрузить библиотеку JDOM.
Мавен для JDOM.
org.jdom jdom2 2.0.6
2. Чтение или анализ XML-файла (JDOM)
В этом примере показано, как использовать JDOM для анализа XML-файла.
2.1 XML-файл.
mkyong support 5000 yflow admin 8000
2.2 JDOM пример синтаксического анализа и распечатки всех XML-элементов и узлов.
package com.mkyong.xml.jdom; import org.jdom2.Document; import org.jdom2.Element; import org.jdom2.JDOMException; import org.jdom2.input.SAXBuilder; import java.io.File; import java.io.IOException; import java.util.List; public class ReadXmlJDomParser { private static final String FILENAME = "src/main/resources/staff.xml"; public static void main(String[] args) { try { SAXBuilder sax = new SAXBuilder(); // XML is a local file Document doc = sax.build(new File(FILENAME)); Element rootNode = doc.getRootElement(); Listlist = rootNode.getChildren("staff"); for (Element target : list) { String id = target.getAttributeValue("id"); String name = target.getChildText("name"); String role = target.getChildText("role"); String salary = target.getChildText("salary"); String currency = ""; if (salary != null && salary.length() > 1) { // access attribute currency = target.getChild("salary").getAttributeValue("currency"); } String bio = target.getChildText("bio"); System.out.printf("Staff id : %s%n", id); System.out.printf("Name : %s%n", name); System.out.printf("Role : %s%n", role); System.out.printf("Salary [Currency] : %,.2f [%s]%n", Float.parseFloat(salary), currency); System.out.printf("Bio : %s%n%n", bio); } } catch (IOException | JDOMException e) { e.printStackTrace(); } } }
Выход
Staff id : 1001 Name : mkyong Role : support Salary [Currency] : 5,000.00 [USD] Bio : HTML tag testing Staff id : 1002 Name : yflow Role : admin Salary [Currency] : 8,000.00 [EUR] Bio : a & b
3. Читать или анализировать удаленный XML-файл (JDOM)
В этом примере используется анализатор JDOM для чтения или анализа удаленного XML-файла или файла на основе веб-сайта.
3.1 Посетите API Alexa https://data.alexa.com/data?cli=10&url=mkyong.com
, и он вернет приведенный ниже XML-файл.
3.2 JDOM пример получения рейтинга Alexa сайта.
package com.mkyong.xml.jdom; import org.jdom2.Document; import org.jdom2.Element; import org.jdom2.JDOMException; import org.jdom2.input.SAXBuilder; import java.io.IOException; import java.net.URL; import java.util.List; public class ReadXmlAlexaApiJDomParser { private static final String REMOTE_URL = "https://data.alexa.com/data?cli=10&url=mkyong.com"; public static void main(String[] args) { try { SAXBuilder sax = new SAXBuilder(); // XML is in a web-based location Document doc = sax.build(new URL(REMOTE_URL)); Element rootNode = doc.getRootElement(); Listlist = rootNode.getChildren("SD"); for (Element target : list) { Element popularity = target.getChild("POPULARITY"); String url = popularity.getAttributeValue("URL"); String rank = popularity.getAttributeValue("TEXT"); System.out.printf("URL : %s%n", url); System.out.printf("Alexa Rank : %s%n", rank); } } catch (IOException | JDOMException e) { e.printStackTrace(); } } }
Выход
URL : mkyong.com/ Alexa Rank : 20152
4. Строка, содержащая XML
В этом примере показано, как JDOM анализирует строку
, содержащую XML.
package com.mkyong.xml.jdom; import org.jdom2.Document; import org.jdom2.Element; import org.jdom2.JDOMException; import org.jdom2.input.SAXBuilder; import java.io.IOException; import java.io.StringReader; public class ReadXmlStringJDomParser { public static void main(String[] args) { String XML = ""; try { SAXBuilder sax = new SAXBuilder(); // String that contains XML Document doc = sax.build(new StringReader(XML)); Element rootNode = doc.getRootElement(); System.out.println(rootNode.getChildText("url")); } catch (IOException | JDOMException e) { e.printStackTrace(); } } } mkyong
Выход
mkyong
Примечание Больше примеров JDOM2 – JDOM2 Учебник
5. Скачать Исходный Код
$клон git $клон git
$компакт-диск java-xml
$cd src/основной/java/com/mkyong/xml/jdom/файловая система/
6. Рекомендации
- Веб-сайт JDOM
- Документация JDOM2
- Википедия – JDOM
- Википедия – Java API для обработки XML
- Oracle – Java API для обработки XML (JAXP)
- Как читать XML–файл на Java – (DOM-анализатор)
- Как читать XML–файл на Java – (синтаксический анализатор SAX)
- Пример JAXB привет, мир
Оригинал: “https://mkyong.com/java/how-to-read-xml-file-in-java-jdom-example/”