Qu'est-ce qu'un bon moyen de coder le texte arbitraire dans XML de manière lisible par l'homme?

StackOverflow https://stackoverflow.com//questions/9608978

  •  09-12-2019
  •  | 
  •  

Question

Ce que je suis jusqu'à présent consiste à mettre le texte dans les balises CDATA et à faire face à la possibilité d'extrémités CDATA apparaissant dans le texte en le divisant dans plusieurs CDATAS adjacents.

Je ne suis pas sûr de cela, mais les analyseurs XML peuvent ne pas conserver de nouvelles lignes à l'intérieur des tags CDATA, correct?Cela signifierait les échapper d'une manière ou d'une autre ...

Je veux générer ces fichiers XML à l'aide de Perl et les analyser avec C ++ (à l'aide d'expatriés), Java et C #.

Plus important encore, je veux que les fichiers résultants soient un peu lisibles à l'homme / modifiables.Quelqu'un peut-il connaître un système de codage qui correspond à ces besoins?J'utilise cela pour stocker des données pour une base de données, il est donc nécessaire d'accepter un texte arbitraire et sur une analyse d'analyse du même texte.

Était-ce utile?

La solution

XML soutient déjà cela, vous n'avez pas besoin de faire quelque chose de spécial et vous n'avez certainement pas besoin d'utiliser CDATA.Il suffit d'utiliser une bibliothèque décente, assurez-vous d'utiliser l'encodage UTF-8 et d'ajouter un nœud texte.Si quelque chose est "Perdre" de nouvelles lignes, alors c'est un bug.XML a déjà un "codage" (échappement) relativement humain lisible.Il est également standard qui le rend beaucoup plus utile que d'inventer votre propre.

voir, par exemple https://stackoverflow.com/a/1140802/181772

Autres conseils

Vous pouvez encoder le contenu, si le contenu était HTML par exemple:

<html>&lt;b&gt;Bold Text&lt;/b&gt;</html>

vs.

<html><![CDATA[<b>Bold Text</b>]]></html>

HMM, autant que je puisse dire des sections CDATA, des données de caractères et des caractères de contrôle ne comptent pas.Je suppose que cela signifie que sur la question des nouvelles lignes, des analyseurs XML font un jugement sur le point de savoir s'ils constituent un caractère de contrôle ou non (historiquement, oui, mais de manière de manière de manière de manière de ... NO.).

Bien qu'il nuirait à la lisibilité, vous pouvez coder de nouvelles lignes à utiliser des séquences d'échappement, En supposant que vous vous échappiez correctement, l'analyse doit le convertir correctement, vous devrez simplement en prendre note lors de l'encodage.

Une autre option, qui enfreint complètement votre exigence "lisible par l'homme" consiste à la base-64 encoder le texte, cela vous permet de coder des informations arbitraires dans le XML.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top