2011-01-03 37 views
6

Hy vọng một câu hỏi nhanh, làm thế nào tôi có thể có được điều này để được hình thành tốt, và do đó chạy?Trích dẫn đơn và kép XSLT trong thuộc tính giá trị đầu vào của biểu mẫu?

<input type="rad" name="RadGroup" value="<xsl:value-of select="productOptionInfo"/>" /> 

Tôi về cơ bản muốn có giá trị được đặt bên trong giá trị thuộc tính, nhưng cả hai đều cần dấu ngoặc kép !?

Bất kỳ ý tưởng nào?

Rất cám ơn

+0

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. :) –

Trả lời

10

Trong XSLT, có một phím tắt để sử dụng các giá trị trong thuộc tính:

<input type="rad" name="RadGroup" value="{productOptionInfo}" /> 

Có một tùy chọn, mà nó sử dụng xsl:attribute:

<input type="rad" name="RadGroup"> 
    <xsl:attribute name="value"> 
     <xsl:value-of select="productOptionInfo"/> 
    </xsl:attribute> 
</input> 
+0

Oh ok Tôi hiểu rồi, điều đó đã làm cho nó rõ ràng hơn bây giờ, cảm ơn :) – Mac

+0

@Mac - Tôi đã thêm một số tùy chọn khác :) – Oded

+0

@Downvoter - Hãy chú ý? – Oded

0

Bạn có thể sử dụng dấu nháy đơn bên trong và dấu ngoặc kép bên ngoài hoặc ngược lại.

Ngoài ra, XML spec nói:

Để cho phép các giá trị thuộc tính để chứa cả đơn và đôi dấu ngoặc kép, dấu nháy đơn hoặc đơn quote ký tự (') có thể được biểu diễn như "&apos;", và đôi nhân vật quote (") là" &quot;"

3

Sử dụng xoăn-khung ký hiệu:.

<input type="rad" name="RadGroup" value="{productOptionInfo}" /> 
+0

Cảm ơn bạn đã làm việc đó, bạn và Oded đều cho tôi câu trả lời đúng cùng một lúc! – Mac

6

Đâ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 - herehere.

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}"/> 

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

+0

Tôi thấy, ok cảm ơn bạn đã xóa thanh toán đó sau đó Dimitre :) – Mac

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