Cách nhận bộ đếm trong vòng lặp xsl: for-each sẽ phản ánh số lượng phần tử hiện tại được xử lý.
Ví dụ nguồn XML của tôi làSố lượt truy cập bên trong vòng lặp xsl: for-each
<books>
<book>
<title>The Unbearable Lightness of Being </title>
</book>
<book>
<title>Narcissus and Goldmund</title>
</book>
<book>
<title>Choke</title>
</book>
</books>
Những gì tôi muốn nhận được là:
<newBooks>
<newBook>
<countNo>1</countNo>
<title>The Unbearable Lightness of Being </title>
</newBook>
<newBook>
<countNo>2</countNo>
<title>Narcissus and Goldmund</title>
</newBook>
<newBook>
<countNo>3</countNo>
<title>Choke</title>
</newBook>
</newBooks>
Các XSLT để sửa đổi:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:template match="/">
<newBooks>
<xsl:for-each select="books/book">
<newBook>
<countNo>???</countNo>
<title>
<xsl:value-of select="title"/>
</title>
</newBook>
</xsl:for-each>
</newBooks>
</xsl:template>
</xsl:stylesheet>
Vì vậy, câu hỏi là những gì để đưa ra của ???. Có bất kỳ từ khóa chuẩn nào hay tôi chỉ đơn giản là phải khai báo một biến và tăng nó trong vòng lặp?
Như câu hỏi là khá dài tôi có lẽ nên mong đợi một dòng hoặc một từ câu trả lời :)
Cần thêm dấu ngoặc kép đóng "với giá trị thuộc tính –
Đây là tất cả tiền phạt và dandy cho đến khi bạn phải thêm một bộ lọc như xsl: if bên trong xsl của bạn:. For-each Sau đó, vị trí() là vô ích và bạn cần truy cập thích hợp –
@Mike Stavrov Đó không phải là một phần của câu hỏi! Không thể bao gồm mọi tình huống – redsquare