2010-04-01 32 views
30

Tôi làm cách nào để đặt một href là liên kết đến và có văn bản cho một liên kết thông qua phép chuyển đổi XSLT? Dưới đây là những gì tôi có cho đến nay, mang đến cho tôi những lỗi "xsl: value-of có thể không phải là con của xsl: yếu tố văn bản":Đặt xsl: value-of thành thuộc tính href và trường văn bản của liên kết trong XSLT

<xsl:element name="a"> 
    <xsl:attribute name="href"> 
     <xsl:value-of select="actionUrl"/> 
    </xsl:attribute> 
    <xsl:text><xsl:value-of select="actionUrl"/></xsl:text> 
</xsl:element> 

Trả lời

35

<xsl:text> xác định phần văn bản trong tài liệu XSL. Chỉ có văn bản thuần túy thực, có thể đến đây chứ không phải các nút XML. Bạn chỉ cần <xsl:value-of select="actionUrl"/>, sẽ in mọi dòng văn bản.

<xsl:element name="a"> 
    <xsl:attribute name="href"> 
     <xsl:value-of select="actionUrl"/> 
    </xsl:attribute> 
    <xsl:value-of select="actionUrl"/> 
</xsl:element> 
+0

Chỉ cần một lưu ý, điều quan trọng dường như cử các href đầu tiên, và hiển thị văn bản thứ hai như bạn đã làm. Tôi đã có nó theo cách khác xung quanh nó nó không hiển thị. –

+0

Đây là cồng kềnh và khó đọc, hãy xem [câu trả lời của lexicore] (http://stackoverflow.com/a/2563083/253468)! – TWiStErRob

4

Bạn không cần xsl:text yếu tố:

<xsl:element name="a"> 
    <xsl:attribute name="href"> 
    <xsl:value-of select="actionUrl"/> 
    </xsl:attribute> 
    <xsl:value-of select="actionUrl"/> 
</xsl:element> 
26

Bạn cũng có thể làm:

<a href="{actionUrl}"><xsl:value-of select="actionUrl"/></a> 
+0

Cảm ơn, Dimitre, một lỗi đánh máy. Quá nhiều EL gần đây. – lexicore

+1

Trên thực tế, actionurl không phải là biến - chỉ là tên phần tử. Do đó, thete phải không có dấu "$" ở đầu tên. –

Các vấn đề liên quan