2010-12-13 144 views
-1

請任何一個幫助我Concat的自評 '圖' 和 「<」 或XSLT 「>」 標誌XSLT concat問題?

不得不看 「Img>」 OR 「<Img

更新:

<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> 

這是xml,我想要沒有img標籤的文本。

我的XSLT代碼僅僅是這樣的:

<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

請提供縮短的XML輸入和所希望的輸出。因此,您將能夠更快得到詳盡的答案。 – Flack 2010-12-13 10:39:55

+0

**這是FAQ **:CDATA部分的內容是**未解析的文本**。所以,沒有'IMG'元素。 **你永遠不應該期望未解析的數據像解析的數據一樣行爲。** – 2010-12-13 14:55:06

回答

0

如果要生成一個<img/>標籤,使用<xsl:element name="img"/>。例如:

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

它相當詳細,特別是在xml-html轉換中。 更清潔。 – Flack 2010-12-13 10:27:28

+0

@Flack:+1。如果適用,這是一個較短的選項(如果標記名稱已知,並且屬性位於變量中)。 – 2010-12-13 10:29:37

+0

感謝您的快速答覆,但我的問題是不適合你的答案 \t \t \t dfsfdsfdsfdsfdsfdsfsd

fdsfsdfsdfsdf

fdsfd

]]> \t \t \t \t這是xml和我想獲得沒有img標籤的文字? – DDPerera 2010-12-13 10:32:47

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

感謝machooo!我早些時候嘗試這一個,但沒有工作假設在img和<之間的空間任何方式感謝你所有涉及解決我的問題 – DDPerera 2010-12-13 11:14:57