Đây là sai:
<input type="rad" name="RadGroup"
value="<xsl:value-of select='productOptionInfo'/>" />
và điều này là sai, quá:
<input type="rad" name="RadGroup"
value='<xsl:value-of select="productOptionInfo"/>' />
Trong XML đó là một lỗi cú pháp có (không thoát) đánh dấu như giá trị của một thuộc tính . Xem Thông số XML W3 - here và here.
Hai cách đúng để làm điều này là (gọi là AVT hoặc attribute value templates):
<input type="rad" name="RadGroup" value="{productOptionInfo}"/>
và
<xsl:attribute name="input">
<xsl:value-of select="productOptionInfo"/>
</xsl:attribute>
Trong XSLT 2.0 ai được phép viết :
<xsl:attribute name="input" select="productOptionInfo"/>
Cách đầu tiên ở trên là ngắn nhất và dễ đọc nhất khi tên của phần tử được biết đến tĩnh (trước).
Cách thứ hai phải được sử dụng khi tên phần tử không được biết đến tĩnh và phải được tạo bằng lệnh <xsl:element>
.
Nguồn
2011-01-03 15:25:52
Câu hỏi hay, +1. Xem câu trả lời của tôi để giải thích tại sao câu trả lời được chọn hiện tại là sai và đối với hai giải pháp XSLT 1.0 chính xác và một giải pháp XSLT 2.0 khác. :) –