Lire des données xml en VB
maxkun
Messages postés
52
Date d'inscription
Statut
Membre
Dernière intervention
-
maxkun Messages postés 52 Date d'inscription Statut Membre Dernière intervention -
maxkun Messages postés 52 Date d'inscription Statut Membre Dernière intervention -
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()