2010-12-13 29 views
-1

Pls quelqu'un me aider à concat 'Img' et signe "<" ou ">" dans xsltXSLT concat Problème?

doivent regarder "Img>" OU "<Img"

Mise à jour des commentaires:

<Content><![CDATA[<P>dfsfdsfdsfdsfdsfdsfsd</P> 
        <P><IMG alt="" hspace=0 
          src="../../Repository.aspx?uri=4343" 
          border=0></P> 
        <P>fdsfsdfsdfsdf</P> 
        <P>fdsfd</P>]]></Content> 

C'est le xml et je veux obtenir le texte sans balises img.

Mon code XSLT est comme ceci:

<xsl:param name="text" select="."/> 
<xsl:if test=". != ''"> 
    <xsl:choose> 
    <xsl:when test="contains($text, 'IMG')"> 
    <xsl:value-of select="substring-before($text,'IMG')" 
        disable-output-escaping="yes"/> 
    <xsl:value-of select="substring-after($text,'border=0')" 
        disable-output-escaping="yes"/> 
    </xsl:when> 
    <xsl:otherwise> 
    <xsl:value-of select="." disable-output-escaping="yes"/> 
    </xsl:otherwise> 
    </xsl:choose> 
</xsl:if> 
+2

S'il vous plaît fournir des commentaires XML raccourcie et sortie désirée. Ainsi, vous serez en mesure d'obtenir une réponse exhaustive beaucoup plus rapidement. – Flack

+0

** Ceci est la FAQ **: le contenu des sections CDATA est ** texte non analysé **. Donc, il n'y a pas d'élément 'IMG'. ** Vous ne devriez jamais vous attendre à ce que les données non analysées se comportent comme des données analysées. ** –

Répondre

0

Si vous souhaitez générer une balise <img/>, utilisez <xsl:element name="img"/>. Par exemple:

<xsl:element name="img"> 
    <xsl:attribute name="src"> 
    <xsl:value-of select="$the_image_url"/> 
    </xsl:attribute> 
</xsl:element> 
+1

C'est plutôt verbeux, particulièrement dans la transformation xml-html. est beaucoup plus propre. – Flack

+0

@Flack: +1. C'est une option plus courte, le cas échéant (si le nom de l'étiquette est connu, et l'attribut est dans une variable). –

+0

Merci pour la réponse rapide mais ma question ne convient pas à votre réponse \t \t \t dfsfdsfdsfdsfdsfdsfsd

fdsfsdfsdfsdf

fdsfd

]]> \t \t \t \t c'est le xml et je veux obtenir le texte sans balises img ?? – DDPerera

2
<xsl:value-of select="substring-before($text, '&lt;IMG')" /> 
+0

merci machooo! J'ai essayé plus tôt celui-ci, mais ne fonctionnait pas supposez l'espace entre img et < N'importe quelle façon, merci de l'avoir impliqué pour résoudre mon problème – DDPerera