2008-11-25 23 views

Trả lời

187

Không hoàn toàn, AND phải là chữ thường.

<xsl:when test="4 &lt; 5 and 1 &lt; 2"> 
<!-- do something --> 
</xsl:when> 
6

Từ XML.com:

Giống như xsl: if hướng dẫn, xsl: khi yếu tố có thể có phức tạp hơn nội dung giữa start- của họ và end-tags-ví dụ, kết quả đen yếu tố , xsl: element element hoặc thậm chí xsl: if và xsl: chọn các phần tử — đến thêm vào cây kết quả. Các biểu thức thử nghiệm cũng có thể sử dụng tất cả các thủ thuật và toán tử rằng thuộc tính thử nghiệm của phần tử xsl: if có thể sử dụng, chẳng hạn như và, hoặc, và gọi hàm để xây dựng các biểu thức boolean phức tạp hơn .

31

Nó phải được bọc trong một xsl <: chọn > vì nó là một khi. Và viết thường chữ "và".

<xsl:choose> 
    <xsl:when test="4 &lt; 5 and 1 &lt; 2" > 
    <!-- do something --> 
    </xsl:when> 
    <xsl:otherwise> 
    <!-- do something else --> 
    </xsl:otherwise> 
</xsl:choose> 
4

Có thể đây không phải là trí tuệ cho chuyên gia xslt, nhưng đối với tôi ở cấp độ mới bắt đầu/trung cấp, điều này khiến tôi bối rối. Tôi muốn làm chính xác điều tương tự, nhưng tôi đã phải kiểm tra một giá trị responsetime từ một xml thay vì một số đồng bằng. Theo chủ đề này, tôi đã thử điều này:

<xsl:when test="responsetime/@value &gt;= 5000 and responsetime/@value &lt;= 8999"> 

đã tạo ra lỗi. Công trình này:

<xsl:when test="number(responsetime/@value) &gt;= 5000 and number(responsetime/@value) &lt;= 8999"> 

Không thực sự hiểu tại sao nó không hoạt động mà không có số(). Nó có thể được mà không có số() giá trị được coi là một chuỗi và bạn không thể so sánh số với một chuỗi?

Dù sao, hy vọng điều này giúp tiết kiệm một ai đó rất nhiều tìm kiếm ...

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