Cách chuyển các biến giữa hai mẫu trong XSLT.Cách chuyển các biến giữa hai mẫu trong XSLT
Tôi không thể sử dụng biến toàn cục vì giá trị của biến phụ thuộc vào nút hiện tại đang được đánh giá.
Nói rằng tôi có XSLT của loại:
<xsl:template match="product">
<xsl:variable name="pr-pos" select="count(./preceding-sibling::product)+1"/>
..
..
..
<xsl:apply-templates select="countries/country"/>
</xsl:template>
<xsl:template match="countries/country">
<tr id="country-id">
<td><a href="#" class="action" id="{concat('a-',$pr-pos)}">+</a></td>
..
..
này cho lỗi như $ pr-pos là không thể truy cập trong mẫu thứ hai.
Làm cách nào để chuyển giá trị biến pr-pos sang mẫu khác? Tôi có thể làm cái này như thế nào?
Trong trường hợp của bạn, bạn không thực sự cần phải chuyển một biến. Giá trị của '$ pr-pos' mà bạn muốn truyền là có thể nhận ra từ bên trong mẫu' country'. – Utkanos
Tất cả các ngôn ngữ lập trình (tốt, hầu hết) đều có phương tiện để truyền thông tin đến một đơn vị thực hiện khác và học cách thực hiện điều đó là một trong những nguyên tắc cơ bản. Câu hỏi này tương đương với việc hỏi, làm thế nào để tôi chuyển các biến giữa hai hàm trong JavaScript, hoặc nói "Tôi đã thử' hàm a() {var i = 5; b();} hàm b() {alert (i); } 'nhưng' i' không thể truy cập trong hàm thứ hai. " –
@torazaburo: Tôi không thể hữu ích giải thích cho tôi cách làm điều này trên google.I không biết đó là lý do được hỏi, nếu bạn gặp sự cố từ những người đặt câu hỏi tại sao bạn không vô hiệu hóa tài khoản của mình trên StackOverflow. Tìm kiếm trên google và cho tôi biết bạn tìm thấy bất kỳ tài liệu nào tốt về tài liệu này ngoài tài liệu w3. – Harshdeep