Acceuil vb.net(477) Traitements des fichiers sous VB net (suite3)
|
| Traitements des fichiers sous VB net (suite3) |
2011-01-20 |
|
Comment lire un fichier Xml avec les classes de l'espace de nom System.Xml.Xpath ?
-----------------------------------------------------------------------------------------
On va s'intéresser ici à lecture d'un fichier Xml en se servant non pas de la classe XmlDocument mais des classes de l'espace de nom System.Xml.Xpath. Je distinguerais deux cas, les fichiers Xml basiques et ceux avec un espace de nom.
L'exemple est assez trivial, mais c'est suffisant pour beaucoup de choses.
Premier cas : fichier Xml basique
10
51
25
38
Second cas : fichier Xml avec un espace de nom
10
51
25
38
Premier cas :
Imports System.Xml.XPath
Private Sub TraiteXml()
Dim doc As XPathDocument = New XPathDocument(fileName)
Dim nav As XPathNavigator = doc.CreateNavigator
' On récupère un XPathNodeIterator sur les Record
Dim iter As XPathNodeIterator = nav.Select("Recordbook/Records/Record")
' Pour chaque Record
While iter.MoveNext
' On récupère l'info FirstValue
Dim firstValue As String = iter.Current.SelectSingleNode("FirstValue").Value
' On récupère l'info SecondValue
Dim secondValue As String = iter.Current.SelectSingleNode("SecondValue").Value
End While
End Sub
Second cas :
Imports System.Xml.XPath
Private Sub TraiteXml2()
Dim doc As XPathDocument = New XPathDocument(fileName)
Dim nav As XPathNavigator = doc.CreateNavigator
' On ajoute la gestion des espaces de noms
Dim mgr As XmlNamespaceManager = New XmlNamespaceManager(nav.NameTable)
mgr.AddNamespace("rd", "http://myexemple/myschema/record")
' On récupère un XPathNodeIterator sur les Record
Dim iter As XPathNodeIterator = nav.Select("rd:Recordbook/rd:Records/rd:Record", mgr)
' Pour chaque Record
While iter.MoveNext
' On récupère l'info FirstValue
Dim firstValue As String = iter.Current.SelectSingleNode("rd:FirstValue", mgr).Value
' On récupère l'info SecondValue
Dim secondValue As String = iter.Current.SelectSingleNode("rd:SecondValue", mgr).Value
End While
End Sub
Comment savoir si un fichier est en lecture seule ?
-------------------------------------------------------------------------
Grâce à la classe File, il est possible de récupérer les attributs (Archive, Lecture seule, ...) d'un fichier :
' Récupération des attributs d'un fichier
Dim Fa As FileAttributes = File.GetAttributes("C:text.txt")
' Vérification si le fichier est en lecture seule
If (Fa And FileAttributes.ReadOnly) = FileAttributes.ReadOnly Then
Console.WriteLine("Ce fichier est en lecture seule !")
Else
Console.WriteLine("Ce fichier n'est pas en lecture seule")
End If
Comment renommer un fichier ?
--------------------------------------
Renommer un fichier est en fait une opération de déplacement.
Dim monAncienFichier As String, monNouveauFichier As String
monAncienFichier = "toto.txt"
monNouveauFichier = "tata.txt"
File.Move(monAncienFichier, monNouveauFichier)
Comment modifier l'extension d'un fichier ?
---------------------------------------------------------
La méthode statique ChangeExtension de la classe Path permet de changer l'extension du fichier qui est passé en paramètre. Cependant, le changement n'a d'effet que dans le string, le fichier physique a toujours son extension d'origine.
Dim path As String = "C:Testtest.xml"
Console.WriteLine("Nouveau path : {0}", System.IO.Path.ChangeExtension(path, "doc"))
|
| Commentaires des visiteurs : |
|