Maison  >  Article  >  développement back-end  >  Caractères spéciaux et espaces XML, nouvelles lignes, codes de caractères d'échappement en détail

Caractères spéciaux et espaces XML, nouvelles lignes, codes de caractères d'échappement en détail

黄舟
黄舟original
2017-03-08 16:38:343161parcourir


Concernant la façon de gérer les espaces en XAML, MSDN fournit une description détaillée : http://msdn.microsoft.com/en-us/library/cc189036(v=VS.95).aspx #whitespace
Pour résumer les points importants :
Les espaces, les retours chariot et les tabulations sont tous traités comme des espaces.
Les espaces consécutifs seront fusionnés en un seul espace. Les espaces immédiatement après
8bf259f5a6144433b921fb8b7de94970 Les espaces immédiatement avant baa3ea5ae7414741617ff7b18b3fb09e seront ignorés. En d'autres termes, l'analyseur coupe les chaînes au milieu de 8bf259f5a6144433b921fb8b7de94970...baa3ea5ae7414741617ff7b18b3fb09e.
Comment préserver les espaces
Ajoutez l'attribut xml:space="preserve" à l'élément
Après avoir défini cet attribut, tous les espaces de l'élément seront conservés et les espaces consécutifs ne seront ni fusionnés ni coupés les deux extrémités.
Un inconvénient de cette méthode est qu'elle conservera tous les espaces de l'élément, même si ces espaces sont générés par le formatage du code. Cela signifie que vous ne pouvez pas utiliser les touches de raccourci telles que ctrl E, F pour organiser le format du code. Une fois que vous l'aurez accidentellement organisé, il sera très difficile de le modifier.

Étant donné que XAML prend en charge l'écriture directe du code Unicode, cette chaîne de code représente un espace insécable
Texte complexe
Texte avec des formats complexes, il est recommandé d'utiliser RichTextBox.
Étant donné que les éléments de texte sont divisés en bloc et en ligne, TextBlock permet uniquement de contenir des éléments en ligne, il est donc plus adapté à l'affichage d'une petite quantité de texte.
Si le format est plus complexe, veillez à utiliser span. La différence entre span et run est que span n'héritera pas du format de l'élément parent, ce qui équivaut à réinitialiser le format et n'est pas affecté par le format de l'élément parent.
* Saut de ligne
La saisie d'un retour chariot en XAML sera traitée comme un espace et tous les sauts de ligne doivent utiliser e1d9b8af2bbdb369143b6eb8718edc46.
De plus, deux Runs sont adjacents. S'ils sont disposés comme suit :

<Run>ab</Run>
<Run>cd</Run>

, il sera affiché comme :

ab
cd

, et un caractère de nouvelle ligne sera affiché. automatiquement ajouté entre les deux Runs.
Si vous souhaitez supprimer le retour chariot et l'afficher en abcd, vous devez l'écrire sur une seule ligne :

<Run>ab</Run><Run>cd</Run>

* Tabulation
Tout d'abord, il n'y a pas de tabulation en XAML, vous ne pouvez utiliser que des espaces continus.
Il convient de noter que lors de l'attribution d'une chaîne à l'attribut Xaml de RichTextBox, les espaces continus seront fusionnés. Par conséquent, si vous souhaitez conserver les tabulations (espaces continus), vous devez effectuer une telle solution de contournement :
<.>

private const string TAB = "    ";
private const string TAB_PLACEHOLDER = "===TAB===";

textBox1.Text = richTextBox1.Xaml;
string xaml = richTextBox1.Xaml;

xaml = xaml.Replace(TAB, TAB_PLACEHOLDER);

richTextBox2.Xaml = xaml;

foreach (Block block in richTextBox2.Blocks)
{
    foreach (Inline inline in ((Paragraph)block).Inlines)
    {
        ((Run)inline).Text = ((Run)inline).Text.Replace(TAB_PLACEHOLDER, TAB);
    }
}
Utilisez d'abord un espace réservé pour remplacer les quatre espaces, afin que les espaces ne soient pas fusionnés lors de l'attribution d'une valeur à l'attribut xaml de richTextBox.

Remplacez ensuite l'espace réservé. Lorsque la valeur est attribuée et remplacée, elle ne sera pas fusionnée.
=============================================== === ===
XAML est lié par les règles XML. Par exemple, XML a une signification particulière pour plusieurs caractères spéciaux, tels que &,6580843315dd7804e35fd3743df832ea. Si vous essayez d'utiliser ces valeurs pour définir le contenu d'un élément, vous risquez d'obtenir une erreur car l'analyseur XAML suppose que vous essayez de faire quelque chose comme créer des éléments imbriqués. Vous pouvez utiliser des entités de caractères, telles que 2f7fd0bd86aad625314711b2dd665730 avec >, & avec &, "with". Les caractères spéciaux ne constituent pas un obstacle à l'exécution de XAML. Les espaces, TAB et Entrée avant et après une chaîne, ainsi que dans la chaîne, seront ignorés, ne laissant qu'un seul espace. Vous pouvez utiliser XML:space="preserve" pour conserver les espaces, les touches TAB et Entrée. Notez que ces règles ne fonctionnent que pour XAML. Si vous définissez le contenu dans le code, tout espace sera conservé.
Caractères spéciaux et espaces
Les caractères suivants sont définis comme caractères d'espacement en [XML] :
Espace ( )
Tab ( )
Entrée ( )
Saut de ligne ( )


Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn