Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
A
alx_20230801
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Patryk Czarnik
alx_20230801
Commits
d621179e
Commit
d621179e
authored
Aug 02, 2023
by
Patryk Czarnik
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
GetCountryInfo - wersja z pętlą i XPath
parent
390e1af9
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
99 additions
and
0 deletions
+99
-0
GetCountryInfo_Interaktywnie.java
...a/saaj_klient/countries/GetCountryInfo_Interaktywnie.java
+99
-0
No files found.
SAAJ_Klient/src/main/java/saaj_klient/countries/GetCountryInfo_Interaktywnie.java
0 → 100644
View file @
d621179e
package
saaj_klient
.
countries
;
import
jakarta.xml.soap.*
;
import
org.w3c.dom.NodeList
;
import
javax.swing.*
;
import
javax.xml.namespace.NamespaceContext
;
import
javax.xml.namespace.QName
;
import
javax.xml.xpath.XPath
;
import
javax.xml.xpath.XPathConstants
;
import
javax.xml.xpath.XPathExpressionException
;
import
javax.xml.xpath.XPathFactory
;
import
java.io.IOException
;
import
java.util.Iterator
;
import
java.util.List
;
import
java.util.Scanner
;
public
class
GetCountryInfo_Interaktywnie
{
static
final
String
NS
=
"http://www.oorsprong.org/websamples.countryinfo"
;
public
static
void
main
(
String
[]
args
)
{
NamespaceContext
nsCtx
=
new
NamespaceContext
()
{
@Override
public
String
getNamespaceURI
(
String
prefix
)
{
if
(
"w"
.
equals
(
prefix
))
return
NS
;
return
null
;
}
@Override
public
String
getPrefix
(
String
namespaceURI
)
{
if
(
NS
.
equals
(
namespaceURI
))
return
"w"
;
return
null
;
}
@Override
public
Iterator
<
String
>
getPrefixes
(
String
namespaceURI
)
{
return
List
.
of
(
"w"
).
iterator
();
}
};
try
{
MessageFactory
mf
=
MessageFactory
.
newInstance
();
SOAPConnectionFactory
scf
=
SOAPConnectionFactory
.
newInstance
();
XPathFactory
xpf
=
XPathFactory
.
newInstance
();
XPath
xpath
=
xpf
.
newXPath
();
xpath
.
setNamespaceContext
(
nsCtx
);
Scanner
scanner
=
new
Scanner
(
System
.
in
);
try
(
SOAPConnection
connection
=
scf
.
createConnection
())
{
while
(
true
)
{
System
.
out
.
print
(
"Podaj kod kraju: "
);
String
szukanyKraj
=
scanner
.
nextLine
();
if
(
szukanyKraj
.
isEmpty
())
break
;
SOAPMessage
request
=
mf
.
createMessage
();
SOAPBody
requestBody
=
request
.
getSOAPBody
();
SOAPBodyElement
fullCountryInfo
=
requestBody
.
addBodyElement
(
new
QName
(
NS
,
"FullCountryInfo"
));
SOAPElement
parametr
=
fullCountryInfo
.
addChildElement
(
new
QName
(
NS
,
"sCountryISOCode"
));
parametr
.
setTextContent
(
szukanyKraj
);
System
.
out
.
println
(
"Zapytanie:"
);
request
.
writeTo
(
System
.
out
);
System
.
out
.
println
(
"\n\nWysyłam..."
);
SOAPMessage
response
=
connection
.
call
(
request
,
"http://webservices.oorsprong.org/websamples.countryinfo/CountryInfoService.wso"
);
SOAPBody
responseBody
=
response
.
getSOAPBody
();
System
.
out
.
println
(
"Mam odpowiedź:"
);
response
.
writeTo
(
System
.
out
);
System
.
out
.
println
();
System
.
out
.
println
(
"Nazwa kraju: "
+
xpath
.
evaluate
(
".//w:sName"
,
responseBody
));
System
.
out
.
println
(
"Stolica: "
+
xpath
.
evaluate
(
".//w:sCapitalCity"
,
responseBody
));
System
.
out
.
println
(
"Waluta: "
+
xpath
.
evaluate
(
".//w:sCurrencyISOCode"
,
responseBody
));
System
.
out
.
println
(
"Języki:"
);
NodeList
languages
=
(
NodeList
)
xpath
.
evaluate
(
".//w:tLanguage"
,
responseBody
,
XPathConstants
.
NODESET
);
final
int
n
=
languages
.
getLength
();
for
(
int
i
=
0
;
i
<
n
;
i
++)
{
String
lang
=
xpath
.
evaluate
(
"w:sName"
,
languages
.
item
(
i
));
System
.
out
.
println
(
" * "
+
lang
);
}
}
}
}
catch
(
SOAPException
|
IOException
|
XPathExpressionException
e
)
{
e
.
printStackTrace
();
}
}
private
static
String
getSingleElement
(
SOAPMessage
response
,
String
elementName
)
throws
SOAPException
{
NodeList
znalezione
=
response
.
getSOAPBody
().
getElementsByTagNameNS
(
NS
,
elementName
);
String
wynik
=
null
;
if
(
znalezione
.
getLength
()
>
0
)
{
wynik
=
znalezione
.
item
(
0
).
getTextContent
();
}
return
wynik
;
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment