2009-08-14 21 views
1

J'utilise System.Xml pour analyser un fichier XML que j'ai généré. Une partie du texte interne des noeuds contient le retour chariot comme ceci: "\ r \ n [...] \ r \ n". Thant est parce que j'ai utilisé Visual Studio pour le formater avant de l'analyser.Retour chariot dans XmlNode Innertext

Y a-t-il moyen de supprimer le retour chariot ajouté par les outils de formage?

Merci!

Modifier @Jon: Vraiment merci! J'utilise un moyen similaire pour contourner le problème.

  char[] escape = { ' ', '\r', '\n' }; 
      string text = node.InnerText.Trim(escape); 

Ceci évite de filtrer les retours chariot dans le texte.

Comme vous l'avez mentionné, ma vraie question est de savoir comment filtrer les formatages tout en analysant xml. Mon hypothèse est la suivante: il n'y a que du texte brut dans le nœud, aucun élément enfant n'est incorporé.

Existe-t-il d'autres formats, à l'exception des retours chariot?

Répondre

1

Suppression tous est facile sauts de ligne:

node.InnerText = node.InnerText.Replace("\r", "") 
           .Replace("\n", ""); 

Mais votre question porte sur la suppression spécifiquement ajoutés par les nouvelles lignes des outils de formatage - et vous ne pouvez pas détecter vraiment ceux qui ont été ajoutés manuellement et qui automatiquement, si ils sont tous dans le fichier.

Aussi, avez-vous des noeuds qui ont du texte et des éléments intercalés, tels que:

<node> 
    text 
    <element /> 
    text 
</node> 

Si vous le faites, vous avez vraiment besoin de traiter chaque noeud texte individuellement au lieu de simplement changer InnerText.

Si cela ne vous est pas utile, pourriez-vous donner plus d'informations sur le problème?

Questions connexes