Conforme aux normes API DOM, il n'y a rien d'autre à faire. Il vous suffit d'enregistrer réelle de caractères de saut de ligne à l'attribut, l'API va les encoder correctement sur son propre (voir XML Canonique spec, section 5.2).
Si vous faites votre propre codage (c'est à dire en remplaçant \n
avec
avant d'enregistrer la valeur de l'attribut), l'API encoder votre entrée de nouveau, résultant en 

dans le fichier XML.
Ligne du bas est, la chaîne de valeur est enregistrée dans le texte. Vous obtenez ce que vous mettez dans, pas besoin d'intervenir.
Cependant... certaines implémentations ne sont pas conformes. Par exemple, ils codent &
caractères valeurs de l'attribut, mais oubliez les caractères de saut de ligne ou des tabulations. Cela vous met dans une position perdante puisque vous ne pouvez pas simplement remplacer les retours à la ligne avec
à l'avance.
Ces implémentations d'enregistrer les caractères de saut de ligne clair, comme ceci:
<xml attribute="line 1
line 2" />
Lors de l'analyse d'un tel document, littérale des retours à la ligne dans les attributs sont normalisés dans un seul espace (de nouveau, conformément à la spécification) - et ainsi, ils sont perdus.
D'enregistrement (et à retenir!) les retours à la ligne dans les attributs est impossible dans ces implémentations.