Содержание
Некоторое время назад я написал учебник о том, как записать XML DOM в файл с использованием Java ? Это очень простой учебник с реальным реальным использованием.
На прошлой неделе, работая над похожей проблемой XML и Java — я создал решение, которое получает XML-результат из стороннего URL-адреса в виде строки, а затем анализирует тот же XML-документ с помощью Java XML XPath Parser.
я использовал javax.xml.parsers сканировать через XML DOM и смог быстро получить определенное значение элемента XML. XPath предоставляет синтаксис для определения части документа XML.
Возможно, вам понадобится ниже Maven Dependency в вашем проекте.
|
1
2
3
4
5
|
< зависимость >
< groupId > javax . xml < / groupId >
< artifactId > jaxp — api < / artifactId >
< версия > 1.4.2 < / версия >
< / зависимость >
|
Если у вас есть какие-либо из нижеперечисленных вопросов, то вы попали по адресу:
- Учебник по XML XPath. Разбор XPath XML в Java
- Java XPath Parser — Разбор XML-документа
- javax.xml.xpath учебник
- учебник по javax.xml.parsers
- Как работать с xpaths в Java (с примерами)
- Разбор XML-документа с XPath
Давайте начнем:
шаги:
- Я буду использовать этот документ XML: https://crunchify.com/wp-content/uploads/code/CrunchifyXMLDocument.xml
- Я получу XML-документ, используя
crunchifyGetURLContents(String url)API. - Мы будем использовать
XPathExpression.evaluateполучить доступ к скомпилированномуXPathвыражения. XPathExpression — это язык запросов для выбора части документа XML на основе строки запроса. Используя выражения XPath, мы можем найти узлы в любом XML-документе, удовлетворяющем строке запроса. т.е./company/company_name/company_item/size/aiow_detail/no_of_downloads[@name='facebook-members'] javax.xml.xpath.XPathExpression.evaluateоценивает скомпилированное выражение XPath в указанном контексте и возвращает результат как указанный тип, т.е.XPathConstants.STRING
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
|
пакет crunchify. ком . учебные пособия ;
Импортировать Java. Ио. BufferedReader ;
Импортировать Java. Ио. InputStreamReader ;
Импортировать Java. Ио. StringReader ;
Импортировать Java. нетто. URL ;
Импортировать Java. нетто. URLConnection ;
Импортировать Java. Nio . кодировок. Charset ;
Импортировать javax. XML. парсеры . DocumentBuilder ;
Импортировать javax. XML. парсеры . DocumentBuilderFactory ;
Импортировать javax. XML. XPath. XPath ;
Импортировать javax. XML. XPath. XPathConstants ;
Импортировать javax. XML. XPath. XPathExpression ;
Импортировать javax. XML. XPath. XPathFactory ;
Импортировать орг. w3c . доминион Документ ;
Импортировать орг. XML. саксофон. InputSource ;
/ **
* @author Crunchify.com
*
* /
общественности учебный класс CrunchifyXMLXPathParser {
общественности статический недействительным main ( Строка [ ] аргументы ) {
строка URL знак равно https://cdn.crunchify.com/wp-content/uploads/code/CrunchifyXMLDocument.xml ;
строка XML знак равно crunchifyGetURLContents ( url ) ;
пытаться {
DocumentBuilderFactory factory знак равно DocumentBuilderFactory . newInstance ( ) ;
DocumentBuilder строитель знак равно завод. newDocumentBuilder ( ) ;
Документ документ знак равно строитель. разбор ( новый InputSource ( новый StringReader ( xml ) ) ) ;
XPathFactory xPathfactory знак равно XPathFactory . newInstance ( ) ;
XPath xpath знак равно xPathfactory . newXPath ( ) ;
XPathExpression expr знак равно XPath
, compile ( / company / company_name / company_item / size / aiow_detail / no_of_downloads [@ name = 'facebook-members'] ) ;
строка numberOfDownloads знак равно экспр . оценить ( документ , XPathConstants . STRING ) . toString ( ) ;
Система. вне. println ( numberOfDownloads ) ;
} ловить ( Исключение е ) {
эл . printStackTrace ( ) ;
}
}
общественности статический строка crunchifyGetURLContents ( String myURL ) {
Система. вне. println ( crunchifyGetURLContents () ударяет: + myURL ) ;
StringBuilder sb знак равно новый StringBuilder ( ) ;
URLConnection urlConn знак равно ноль ;
InputStreamReader в знак равно ноль ;
пытаться {
URL URL знак равно новый URL ( myURL ) ;
urlConn знак равно URL — адрес. openConnection ( ) ;
если ( urlConn ! знак равно ноль )
urlConn . setReadTimeout ( 60 * 1000 ) ;
если ( urlConn ! знак равно ноль && urlConn.getInputStream ()! = null) {
in = new InputStreamReader (urlConn.getInputStream (), Charset.defaultCharset ());
BufferedReader bufferedReader знак равно новый BufferedReader ( в ) ;
если ( bufferedReader ! знак равно ноль ) {
ИНТ ср ;
в то время как ( ( ср знак равно bufferedReader . читать ( ) ) ! знак равно — 1 ) {
бакалавр естественных наук добавить ( ( символ ) ср ) ;
}
bufferedReader . закрыть ( ) ;
}
}
дюйм закрыть ( ) ;
} ловить ( Исключение е ) {
бросать новый RuntimeException ( «Исключение при вызове URL:» + myURL , е ) ;
}
вернуть бакалавр естественных наук toString ( ) ;
}
}
|
Результат:
|
1
2
|
crunchifyGetURLContents ( ) является ударять : https : //crunchify.com/wp-content/uploads/code/CrunchifyXMLDocument.xml
Более чем 400k
|
Ниже приведены поддерживаемые XPathConstants Перечисления.
0.00 (0%) 0 votes










