Dans l'extrait de code suivant, en utilisant XmlReader, lorsque je rencontre un élément. Je voudrais le lire tel quel, y compris tous les attributs et la décoration de l'espace de noms dans l'élément. En utilisant la propriété oXml.Name, je ne peux obtenir que le nom du tag. Y at-il une fonction pour obtenir l'étiquette elle-même?XmlReader - Lit le nœud actuel sous forme de chaîne
oXml = XmlReader.Create(path, oXmlSettings)
While oXml.Read()
Select Case oXml.NodeType
Case XmlNodeType.Element
'Read Element as-is
If taglist.contains(oXml.Name)
stringbuilder.Append(oXml.ReadOuterXml())
End If
Case XmlNodeType.Text
stringbuilder.Append(oXml.Value)
End Select
End While
J'ai essayé oXml.ReadOuterXml() mais elle renvoie l'élément et son subcontent. Cela peut être acceptable, mais comment puis-je rediriger mon XmlReader pour ignorer XmlNodeType.Text et XmlNodeType.EndElement qui se produira lorsque l'élément que je viens d'obtenir de ReadOuterXml a été analysé? MISE À JOUR: Pour l'extrait suivant, loc1 est dans taglist, donc écrit en utilisant ReadOuterXml, mais l'analyseur ne parvient pas à obtenir le "!" personnage.
<para>
Test blabla <loc1 href="test">complicated</loc1>!
</para>
Oui, il fait avancer rapidement, mais je crois qu'il manque l'événement suivant le EndElement. Est-ce parce que j'ai déjà fait oXml.Read()? – Vincent
Appellez-vous à nouveau Lire * après * ReadOuterXml? Si oui, c'est l'appel qui vous fait du mal. –
S'il vous plaît voir l'extrait de code mis à jour, je crois que Read est appelé effectivement après? – Vincent