Afficher tout le texte d'un élément avec XmlReader C#
Je suis en utilisant un XmlReader pour itérer sur du XML. Certains de XML est en fait en HTML et je veux obtenir le contenu du texte à partir du nœud.
Exemple XML:
<?xml version="1.0" encoding="UTF-8"?>
<data>
<p>Here is some <b>data</b></p>
</data>
Exemple de code:
using (XmlReader reader = new XmlReader(myUrl))
{
while (reader.Read())
{
if (reader.Name == "p")
{
//I want to get all the TEXT contents from the this node
myVar = reader.Value;
}
}
}
Ce n'est pas moi tout le contenu. Comment puis-je obtenir tout le contenu de la
nœud dans cette situation?
L'exemple de XML n'est pas valide. Est le HTML codé correctement?
Il est valide pour moi.
J'étais sous l'impression XML ne doit pas contenir de texte à l'intérieur d'un élément qui contient également des nœuds. Il doit être un attribut, ou que le texte interne d'un enfant de moins de nœud.
Ok, mais c'est parfaitement légal.
Il est légal. Il est appelé "contenu mixte" en XML. w3schools.com/schema/schema_complex_mixed.asp
Il est valide pour moi.
J'étais sous l'impression XML ne doit pas contenir de texte à l'intérieur d'un élément qui contient également des nœuds. Il doit être un attribut, ou que le texte interne d'un enfant de moins de nœud.
Ok, mais c'est parfaitement légal.
Il est légal. Il est appelé "contenu mixte" en XML. w3schools.com/schema/schema_complex_mixed.asp
OriginalL'auteur ryanlifferth | 2011-06-02
Vous devez vous connecter pour publier un commentaire.
Utilisation ReadInnerXml:
Ou si vous souhaitez ignorer la
<b>
ainsi, vous pouvez utiliser l'entrée auxiliaire lecteur pour le sous-arbre, et seulement lire les nœuds de texte:OriginalL'auteur carlosfigueira
Je ne peux pas upvote ou un commentaire sur les réactions des autres, alors laissez-moi juste dire carlosfigueira frappé le clou sur la tête, c'est exactement la façon dont vous lisez le texte de la valeur d'un élément. sa réponse m'a aidé énormément.
pour l'amour de exmeplification voici mon code:
le fichier que je suis en train de lire peut être trouvé ici: http://www.bnm.md/md/official_exchange_rates?get_xml=1&date=
(vous devez ajouter une date sous la forme JJ.MM.Format AAAA-il pour obtenir le .XML)
OriginalL'auteur Absolute Virtue
Je vous suggère d'utiliser HtmlAgilityPack qui est mature et stable de la bibliothèque pour faire ce genre de chose. Il prend soin de récupérer le code html, conversion en xml, et permet de sélectionner les nœuds que vous souhaitez avec XPATH.
Dans votre cas, il serait aussi simple que de l'exécution de
OriginalL'auteur Josh