khác biệt khái quát giữa <xsl:apply-templates>
và <xsl:-for-each>
mà không ai đã chỉ ra:
<xsl:apply-templates>
thực sự là một cái gì đó nhiều hơn một đẹp hơn, tương đương thêm thanh lịch của <xsl:for-each>
:
xsl:apply-templates
là phong phú hơn và sâu hơn xsl:for-each
, thậm chí chỉ đơn giản là vì chúng tôi không biết mã nào sẽ được áp dụng trên các nút của lựa chọn - trong trường hợp chung mã này sẽ khác nhau đối với các nút khác nhau của danh sách nút.
Ngoài ra, mã mà sẽ được áp dụng có thể được viết cách sau xsl: apply template đã được viết và bởi người mà không biết tác giả ban đầu.
_2. Ở phía bên kia, sử dụng <xsl:for-each>
sẽ không gây hại gì nếu bạn biết chính xác cách thức <xsl:for-each>
được xử lý.
Vấn đề là rất nhiều người mới đến XSLT có kinh nghiệm trong lập trình bắt buộc mất <xsl:for-each>
để thay thế "vòng lặp" trong PL yêu thích của họ và nghĩ rằng nó cho phép họ thực hiện điều không thể - như tăng bộ đếm hoặc bất kỳ sửa đổi nào khác đã được xác định là <xsl:variable>
.
Sử dụng không thể thiếu <xsl:for-each>
là thay đổi tài liệu hiện tại - điều này thường cần thiết in order to be able to use the key() function on a document, different from the current source XML document, ví dụ để truy cập bảng tra cứu hiệu quả nằm trong tài liệu xml của riêng nó.
Nguồn
2009-04-10 13:20:45
Không có gì "bắt buộc" trong. Ngoài ra, bạn có ý nghĩa gì bởi "sử dụng mẫu"? Không có hướng dẫn như vậy trong XSLT. –
s/sử dụng-mẫu/gọi-mẫu /: Typo – Richard
looping (hoặc bất kỳ loại) là rất nhiều lĩnh vực lập trình bắt buộc. Chức năng một sẽ sử dụng đệ quy. – Richard