Qual è un buon modo di codificare il testo arbitrario in XML in modo leggibile dall'uomo?

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

  •  09-12-2019
  •  | 
  •  

Domanda

Quello che ho finora sta mettendo il testo in tag CDATA, e affrontare la possibilità di CDATA finali che appaiono nel testo dividendolo in più cratas adiacenti.

Non sono sicuro di questo, ma i parser XML possono non riuscire a preservare le nuove linee all'interno dei tag CDATA, corretti?Questo significherebbe sfuggirli in qualche modo ...

Voglio generare questi file XML usando Perl e analizzali con C ++ (usando Expat), Java e C #.

Soprattutto, voglio che i file risultanti siano leggermente leggibili dall'uomo / modificabili.Qualcuno conosce alcun schema di codifica che si adatta a questi bisogni?Sto usando questo per memorizzare i dati per un database, quindi è necessario accettare il testo arbitrario, e al momento dell'annalimento restituire lo stesso testo.

È stato utile?

Soluzione

XML supporta già questo, non è necessario fare nulla di speciale e non è necessario utilizzare CDATA.Basta utilizzare una libreria decente, assicurati di utilizzare la codifica UTF-8 e aggiungi un nodo di testo.Se qualcosa sta "perdendo" le novità, allora è un bug.XML ha già una "codifica" (fuggitura) che è relativamente umana leggibile.È anche standard che rende molto più utile che inventare il tuo.

Vedi, ad esempio https://stackoverflow.com/a/1140802/1172

Altri suggerimenti

È possibile codificare il contenuto, se il contenuto era ad esempio HTML:

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

vs.

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

Hmm, per quanto posso dire che le sezioni CDATA sono per i dati dei caratteri e i caratteri di controllo non contano.Suppongo che questo significhi che sulla questione di Newlines, i parser XML fanno una chiamata di giudizio sul fatto che siano un carattere di controllo o meno (storicamente, sì, ma praticamente ... no.).

Mentre comprometterebbe la leggibilità, è possibile codificare le nuove linee utilizzando sequenze di escape, Supponendo che tu stia sfuggendo correttamente, l'analisi dovrebbe convertirlo correttamente, dovrai solo prendere nota di esso durante la codifica.

Un'altra opzione, che viola completamente il tuo requisito "leggibile da leggibile" è quello di Base-64 codificare il testo, questo consente di codificare le informazioni arbitrarie nell'XML.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top