Comment sauvegarder les nouvelles lignes dans l’atsortingbut XML?

Je dois enregistrer du contenu contenant des nouvelles lignes dans certains atsortingbuts XML, pas du texte. La méthode doit être choisie pour que je puisse la décoder dans XSLT 1.0 / ESXLT / XSLT 2.0

Quelle est la meilleure méthode de codage?

Veuillez suggérer / donner des idées.

Dans une API DOM conforme, vous n’avez rien à faire. Enregistrez simplement les caractères de nouvelle ligne dans l’atsortingbut, l’API les encodera correctement (voir la spécification XML canonique, section 5.2 ).

Si vous faites votre propre encodage (c.-à-d. En remplaçant \n par avant d’enregistrer la valeur de l’atsortingbut), l’API encodera à nouveau votre entrée, ce qui entraînera 
 dans le fichier XML.

En fin de compte, la valeur de la chaîne est enregistrée textuellement. Vous sortez ce que vous mettez, pas besoin d’intervenir.

Cependant … certaines implémentations ne sont pas conformes. Par exemple, ils encoderont & atsortingbueront des caractères aux valeurs d’atsortingbut, mais oublieront les caractères de nouvelle ligne ou les tabulations. Cela vous met dans une position perdante puisque vous ne pouvez pas simplement remplacer les nouvelles lignes par préalablement.

Ces implémentations enregistreront les caractères de nouvelle ligne non codés, comme ceci:

  

Lors de l’parsing d’un tel document, les nouvelles lignes littérales dans les atsortingbuts sont normalisées en un seul espace (encore une fois, conformément à la spécification) – et sont donc perdues.

Sauvegarder (et conserver!) Les nouvelles lignes dans les atsortingbuts est impossible dans ces implémentations.

Vous pouvez utiliser l’entité pour représenter une nouvelle ligne dans un atsortingbut XML. peut être utilisé pour représenter un retour chariot. Un CRLF de style Windows pourrait être représenté par .

C’est la syntaxe XML légale. Voir les spécifications XML pour plus de détails.

Une réponse brute peut être:

 XmlDocument xDoc = new XmlDocument(); xDoc.Load(@"Agenda.xml"); //make stuff with the xml //make atsortingbutes value = "\r\n" (you need both expressions to make a new line) ssortingng a = xDoc.InnerXml.Replace("
", "\r").Replace("
", "\n").Replace("><",">\r \n<"); StreamWriter sDoc = new StreamWriter(@"Agenda.xml"); sDoc.Write(a); sDoc.Flush(); sDoc.Dispose(); 

Cette volonté comme vous voyez est juste une chaîne