2
votes

Erreurs d'analyse du modèle: balise de fermeture inattendue "p"

Je souhaite formater le fichier XML en Angular. J'ai essayé ceci:

ERROR in : Template parse errors:
Unexpected closing tag "p". It may happen when the tag has already been closed by another tag. For more info see https://www.w3.org/TR/html5/syntax.html#closing-elements-that-have-implied-end-tags ("
        {{apiattempt.raw_request | xmlBeautyfier }}
      </pre>
    [ERROR ->]</p>
    <p><b class="label">Raw Response</b>{{apiattempt.raw_response | xmlBeautyfier }}</p>
  </div"): 

Mais j'obtiens cette erreur:

<div class="element-box">
  <div class="details-wrapper">
    <p><b class="label">Raw Request</b>
      <pre>
        {{apiattempt.raw_request | xmlBeautyfier }}
      </pre>
    </p>
  </div>
</div>

Savez-vous comment je peux résoudre ce problème?


3 commentaires

La balise p peut être fermée implicitement par l'utilisation d'autres balises; voir cette question


w3.org/TR/ html5 /…


Bonne question - je ne le savais pas.


3 Réponses :


0
votes

Depuis html.com :

La balise de fermeture

est facultative et est impliquée par la balise d'ouverture du prochain élément HTML rencontré dans un document HTML après une balise d'ouverture

.


1 commentaires

supprimer la balise de fermeture

? cela génère-t-il des exceptions?



5
votes

La balise

 est un élément de niveau bloc. Lorsqu'il est placé à l'intérieur du 

...

, il agira comme un

provoquant sa fermeture et lançant une erreur quand à votre

. Fermez le

avant votre
ou enveloppez le pre dans un élément différent si vous le souhaitez.

https://developer.mozilla.org/en -US / docs / Web / HTML / Element / p


3 commentaires

Y a-t-il un travail autour du résultat final n'est pas bien formaté.


Comment voulez-vous qu'il soit formaté?

est utilisé pour faire apparaître le texte tel quel.


Oui, pre> est utilisé pour mettre en forme le texte à l'intérieur



0
votes

Reportez-vous à: https://www.w3.org/TR/html5/syntax.html#closing-elements-that-have-implied-end-tags

En HTML: la balise p est implicitement fermée avec l'élément suivant. Donc

  • la première balise p commence p et se termine par b ou pre balise. (il est implicitement fermé).
  • puis l'analyseur trouve la balise de fermeture / p pour laquelle il ne voit pas la balise p précédente. (le premier était implicitement fermé).

Solutions (du meilleur au pire):

  • n'utilisez pas p lorsque vous faites des choses plus délicates. Vous avez un pré-tag, vous devriez donc envisager de changer votre p d'origine avec div ou span
  • OU drop / p (bonne idée)
  • OU ajoutez p devant / p. (mauvaise idée d'y avoir / p ..)

Solution possible à étudier: - XHTML nécessite une balise p de fermeture explicite. Vous pouvez essayer d'utiliser XHTML et nous faire savoir si cela fonctionne. Remarque: c'est un peu exagéré de votre problème ... un peu toujours bon à apprendre ;-)

J'espère que cela vous aidera


0 commentaires