récupération de données sur une page XML avec balises complexes
Bonjour à tous,
Je cherche à récupérer les données de livres dans des méta-bases à partir des codes EAN des bouquins :
.
Le premier site web que j'interroge (isbnbd.com) me renvoie une page XML :
Code:
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
| <isbndb>
<data>
<awards_text/>
<book_id>les_dragons_de_meereen_le_trone_de_fer_t_14</book_id>
<dewey_decimal/>
<dewey_normal>0</dewey_normal>
<edition_info>Paperback; 2012-09-05</edition_info>
<isbn10>2756405876</isbn10>
<isbn13>9782756405872</isbn13>
<language/>
<lcc_number/>
<marc_enc_level>~</marc_enc_level>
<notes/>
<physical_description_text>6.0x9.4x1.4- 1.3 lb</physical_description_text>
<publisher_id>pygmalion</publisher_id>
<publisher_name>PYGMALION</publisher_name>
<publisher_text>PYGMALION</publisher_text>
<summary/>
<title>les dragons de meereen le trone de fer t.14</title>
<title_latin>les dragons de meereen le trone de fer t.14</title_latin>
<title_long/>
<urls_text/>
</data>
<index_searched>isbn</index_searched>
</isbndb> |
que j'arrive à traiter grace à un code comme ceci :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
|
Imports System.Xml
Imports System.Net
Imports System.Text
Dim client As New WebClient()
Dim DocXml As New XmlDocument()
Dim PageWebXml As String
Dim element As XmlNodeList
Dim noeud, noeudEnf As XmlNode
Dim TitreLivre As String
PageWebXml = Encoding.UTF8.GetString(client.DownloadData("http://isbndb.com/api/v2/xml/QVM9E9ZY/book/9782756405872"))
DocXml.LoadXml(PageWebXml)
element = DocXml.DocumentElement.GetElementsByTagName("data")
For Each noeud In element
For Each noeudEnf In noeud.ChildNodes
Select Case noeudEnf.LocalName
Case "title"
TitreLivre = noeudEnf.InnerText
End Select
Next
Next
msgbox(TitreLivre) |
Par contre, un second site web (worldcat.org) me renvoie une page XML comme ceci :
Code:
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
|
<record xmlns="http://www.loc.gov/MARC21/slim">
<leader>00000cam a2200000Li 4500</leader>
<controlfield tag="001">816626178</controlfield>
<controlfield tag="008">121003s2012 fr 000 j fre</controlfield>
<datafield ind1=" " ind2=" " tag="020">
<subfield code="a">9782756405872 (br)</subfield>
</datafield>
<datafield ind1=" " ind2=" " tag="020">
<subfield code="a">2756405876 (br)</subfield>
</datafield>
<datafield ind1="1" ind2=" " tag="041">
<subfield code="a">fre</subfield>
<subfield code="h">eng</subfield>
</datafield>
<datafield ind1="1" ind2=" " tag="100">
<subfield code="a">Martin, George R. R.,</subfield>
<subfield code="d">1948-....</subfield>
<subfield code="4">aut</subfield>
<subfield code="0">(FrPBN)11914792</subfield>
</datafield>
<datafield ind1="1" ind2="2" tag="240">
<subfield code="a">A dance with dragons.</subfield>
<subfield code="n">2.</subfield>
<subfield code="l">français.</subfield>
</datafield>
<datafield ind1="1" ind2="4" tag="245">
<subfield code="a">Les dragons de Meereen :</subfield>
<subfield code="b">roman /</subfield>
<subfield code="c">
George R. R. Martin ; traduit de l'américain par Patrick Marcel.
</subfield>
</datafield> |
Je n'arrive pas à adapter mon code pour récupérer, par exemple le titre du bouquin qui correspond à la balise subfield="a" de datafield/tag="245"
Quelqu'un saurait m'éclairer ?
(Bien entendu je suis une quiche qui bidouille en piochant des idées à gauche et a droite pour programmer des bouts de machin)