Bạn có thể đặt hai điều kiện trong một thuộc tính thử nghiệm xslt không?


Câu trả lời:


211

Không hoàn toàn, AND phải viết thường.

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

33

Nó phải được gói trong <xsl: select> vì đó là 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>

6

Từ XML.com :

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


5

Có thể đây là một người không có trí tuệ cho xslt-chuyên nghiệp, 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 giá trị thời gian đáp ứng từ xml thay vì số đơn giản. Theo chủ đề này, tôi đã thử điều này:

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

mà tạo ra một lỗi. Những công việc này:

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

Mặc dù vậy, đừng hiểu tại sao nó không hoạt động mà không có số (). Có thể là không có số () giá trị được coi là một chuỗi và bạn không thể so sánh các số với một chuỗi?

Dù sao, hy vọng điều này sẽ cứu ai đó rất nhiều tìm kiếm ...

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.