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

黄舟
Libérer: 2017-03-08 16:38:34
original
3130 Les gens l'ont consulté


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
Les espaces immédiatement avant seront ignorés. En d'autres termes, l'analyseur coupe les chaînes au milieu de ....
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 .
De plus, deux Runs sont adjacents. S'ils sont disposés comme suit :

<Run>ab</Run>
<Run>cd</Run>
Copier après la connexion

, il sera affiché comme :

ab
cd
Copier après la connexion

, 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>
Copier après la connexion

* 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);
    }
}
Copier après la connexion
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 &,<,>. 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 < avec <, > 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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!