web-dev-qa-db-fra.com

Ajouter une nouvelle balise de ligne / break en XML

J'essayais d'ajouter une nouvelle ligne/rupture au code dans XML et cela a échoué.

J'ai essayé jusqu'à présent:

<br />
<br> 



Voici un exemple du code avec lequel je travaille. J'ai inclus "
" pour montrer où se trouve la pause dans le code.

<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="dummy.xsl"?>
  <item>
     <summary>Tootsie roll tiramisu macaroon wafer carrot cake.       
               &#xA; Danish topping sugar Plum tart bonbon caramels cake.
     </summary>
  </item>
69
Courtney Jordan

La solution à cette question est la suivante:

<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="dummy.xsl"?>
  <item>
     <summary>
        <![CDATA[Tootsie roll tiramisu macaroon wafer carrot cake. <br />      
                 Danish topping sugar Plum tart bonbon caramels cake.]]>
     </summary>
  </item>

en ajoutant le <br /> à l'intérieur du <![CDATA]]>, cela permet à la ligne de se rompre, créant ainsi une nouvelle ligne!

37
Courtney Jordan

Nouvelle ligne XML

avec XML

  1. retour chariot: &#xD;
  2. saut de ligne: &#xA;

ou essayez comme @dj_segfault proposé (voir sa réponse) avec CDATA;

 <![CDATA[Tootsie roll tiramisu macaroon wafer carrot cake.                       
            Danish topping sugar Plum tart bonbon caramels cake.]]>
85
arthur

Vous n'avez besoin de rien d'extraordinaire: ce qui suit contient une nouvelle ligne (deux, en fait):

<summary>Tootsie roll tiramisu macaroon wafer carrot cake.       
         Danish topping sugar Plum tart bonbon caramels cake.
</summary>

La question qui se pose est la suivante: pourquoi cette nouvelle ligne n’at-elle pas l’effet escompté? C’est une question de savoir ce que le destinataire du XML en fait réellement. Par exemple, si le destinataire le traduit en HTML et que le code HTML est affiché dans le navigateur, la nouvelle ligne sera convertie en espace par le navigateur. Vous devez nous parler du pipeline de traitement.

39
Michael Kay

Vous utilisez probablement Windows, la nouvelle ligne est donc CR + LF (retour chariot + saut de ligne). Donc, la solution serait:

<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="dummy.xsl"?>
  <item>
     <summary>Tootsie roll tiramisu macaroon wafer carrot cake.&#13;&#10;Danish topping sugar Plum tart bonbon caramels cake.
     </summary>
  </item>

Pour Linux, il n'y a que LF et pour Mac OS uniquement CR.

En question il a montré de manière Linux.

10
ST3

Cette solution a fonctionné pour moi:

<summary>Tootsie roll tiramisu macaroon wafer carrot cake. &#xD;Danish topping sugar Plum tart bonbon caramels cake.</summary>

Vous aurez le texte en deux lignes.

Cela a fonctionné pour moi en utilisant la méthode XmlReader.Read.

7
merce_00

Vous aurez probablement besoin de le mettre dans un bloc CDATA pour préserver les espaces

<?xml version="1.0" encoding="utf-8"?> <?xml-stylesheet type="text/xsl" href="dummy.xsl"?>   
   <item>      
      <summary>
         <![CDATA[Tootsie roll tiramisu macaroon wafer carrot cake.                       
            Danish topping sugar Plum tart bonbon caramels cake.]]>
      </summary>   
   </item> 
4
dj_segfault

Sans utiliser CDATA, essayez

<xsl:value-of select="'&#xA;'" />

Notez les guillemets simples et doubles.

Cela est particulièrement utile si vous ne créez pas XML alias texte. <xsl:output method="text" />

1
Gabe Rainbow

Ceci peut être adressé simplement par l'attribut CSS:

XML: <label name="pageTac"> Hello how are you doing? Thank you I'm Good</label>

CSS

.pageText{
white-space:pre !important; // this wraps the xml text.}

HTML/XSL

<tr>
        <td class="pageText"><xsl:value-of select="$Dictionary/infolabels/label[@name='pageTac']" />
            </td></tr>
0
Zabi Baig

La méthode pour effectuer un saut de ligne en XML consiste à utiliser &#xA;

Cela fonctionnait pour moi dans Eclipse IDE, lorsque je concevais ma mise en page XML et utilisais TextView.

0
Rohan Mundhey

Le moyen le plus simple d’effectuer un saut de ligne est le suivant:
1> Ajouter ce qui suit en CSS - e{display:block}
2> Maintenant, où que vous souhaitiez insérer un saut de ligne, tapez -

<e></e>
0
Yash Kulkarni

J'ai eu le même problème lorsque j'ai dû développer un format de champ de longueur fixe.

Généralement, nous n'utilisons pas de séparateur de ligne pour les fichiers binaires, mais notre client souhaitait ajouter un saut de ligne comme séparateur entre les enregistrements. Ils ont mis

<record_delimiter value = "\ n" />

mais cela ne fonctionnait pas car les disques avaient deux caractères supplémentaires:
<record1>\n <record2>\n .... et ainsi de suite.

Est-ce que le changement qui a suivi a fonctionné?.

<record_delimiter value = "\ n" /> => <record_delimiter value = "# xA;" />

Après la suppression du métissage Java interprète.

0
aprodan

Je voulais ajouter ma solution:

&lt; br/ &gt;

qui est fondamentalement la même que celle suggérée ci-dessus
Dans mon cas, je devais utiliser &lt pour <et &gt pour> Mettre simplement <br /> ne fonctionnait pas.

0
Alex Chastukhin