Lire des données xml en VB
maxkun
Messages postés
61
Statut
Membre
-
maxkun Messages postés 61 Statut Membre -
maxkun Messages postés 61 Statut Membre -
Bonjour, voila, j'aimerai lire des données XML en vb, mais je débute et je ne vois pas comment faire, quelqu'un pourrait m'aider???
En gros j'ai le code suivant, et j'aimerai voir s'afficher dans ma console la donnée XXXX :
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<fax xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<properties>
<property_name="ANI">
<value xsi:type="xsd:string">XXXX</value>
</property_name>
<files>
<file>
<path>C:\XMediusFAX\Temp\457DD0EF-78B9-4712-89B8-92336C4D533F-500-IF.tiff</path>
</file>
</files>
</fax>
Cordialement maxkun.
En gros j'ai le code suivant, et j'aimerai voir s'afficher dans ma console la donnée XXXX :
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<fax xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<properties>
<property_name="ANI">
<value xsi:type="xsd:string">XXXX</value>
</property_name>
<files>
<file>
<path>C:\XMediusFAX\Temp\457DD0EF-78B9-4712-89B8-92336C4D533F-500-IF.tiff</path>
</file>
</files>
</fax>
Cordialement maxkun.
A voir également:
- Lire des données xml en VB
- Lire le coran en français pdf - Télécharger - Histoire & Religion
- Fuite données maif - Guide
- Lire epub - Guide
- Xml download - Télécharger - Édition & Programmation
- Lire fichier bin - Guide
4 réponses
Bonjour,
Il y a une API qui fait ça : Microsoft XML
https://vb.developpez.com/faq/?page=Routines#lirexml
Zébulon
Il y a une API qui fait ça : Microsoft XML
https://vb.developpez.com/faq/?page=Routines#lirexml
Zébulon
J'ai essayer le code que tu m'as montrer mais il ne reconnait pas les types DOMDocument et IXMLDOMElement, il faut que j'importe quelle librairie pour qu'il les reconnaissent?
Cordialement maxkun.
Cordialement maxkun.
Après quelques recherches j'ai fini par réussir à afficher la valeur que je voulais.
Avec ce code j'arrive à afficher les valeurs entre les balises, cependant est-il possible de mettre ces valeurs dans des variables suivant le nom de chaque attribut (par exemple pour l'attribut ANI la variable vaut XXXX, pour un autre attribut elle vaut YYYY)?
Imports System.Xml
Module Module1
Sub Main()
'Dim xDoc As System.Xml.XmlDocument
Dim xDoc As MSXML.DOMDocument
xDoc = New MSXML.DOMDocument
Dim xPE As MSXML.IXMLDOMParseError
If xDoc.Load("C:\Documents and Settings\mdorget\Bureau\vraie_fax.XML") Then
' Le document a été chargé avec succès.
' Maintenant faites quelque chose d'intéressant.
DisplayNode(xDoc.ChildNodes, 0)
Else
' Impossible de charger le document
Dim strErrText As String
' Obtient l'objet ParseError
xPE = xDoc.parseError
With xPE
strErrText = "Your XML Document failed to load " & _
"due the following error." & vbCrLf & _
"Error #: " & .errorCode & ": " & xPE.reason & _
"Line #: " & .line & vbCrLf & _
"Line Position: " & .linepos & vbCrLf & _
"Position In File: " & .filepos & vbCrLf & _
"Source Text: " & .srcText & vbCrLf & _
"Document URL: " & .url
End With
MsgBox(strErrText, vbExclamation)
End If
xPE = Nothing
Console.ReadLine()
End Sub
Public Sub DisplayNode(ByRef Nodes As MSXML.IXMLDOMNodeList, _
ByVal Indent As Integer)
Dim xNode As MSXML.IXMLDOMNode
Indent = Indent + 2
For Each xNode In Nodes
If xNode.nodeType = MSXML.DOMNodeType.NODE_TEXT Then
Debug.Print(Space$(Indent) & xNode.parentNode.nodeName & _
":" & xNode.nodeValue)
Console.WriteLine(xNode.parentNode.nodeName & _
":" & xNode.nodeValue)
End If
If xNode.hasChildNodes Then
DisplayNode(xNode.childNodes, Indent)
End If
Next xNode
End Sub
End Module
Avec ce code j'arrive à afficher les valeurs entre les balises, cependant est-il possible de mettre ces valeurs dans des variables suivant le nom de chaque attribut (par exemple pour l'attribut ANI la variable vaut XXXX, pour un autre attribut elle vaut YYYY)?
Pour ceux que ça intéresse, ce code permet d'extraire une valeur selon un attribut :
Dim q = (From [property] In XDocument.Load("XMLFile1.xml").Element("fax").Element("properties").Elements("property")
Where [property].Attribute("name") = "ANI"
Select [property].Element("value").Value).SingleOrDefault()