Tôi có vấn đề này strage trong khi tạo ra một XSL ngày hôm nay. Xem xét cho câu trả lời trên net, nhưng couldnt tìm thấy bất kỳ .... Thật sự tôi đoán! Tôi dint biết vấn đề của tôi là gì, vì vậy tôi làm những gì bạn tìm?
Dù sao! Chỉ trong trường hợp bạn có vấn đề này rất giống nhau và bằng cách nào đó bởi quyền năng của FORCE bạn quản lý để hạ cánh trên trang này ... bạn sẽ cảm ơn tôi tấn ... Và nếu bạn đã vô tình hạ cánh trên trang này cho một số phận kỳ lạ và bạn xảy ra được một nhà phát triển XSL, DO LÀM Chú ý NÀY NOW, TƯƠNG LAI CHO nguyên nhân, Nếu một ngày nào đó, bạn phải đối mặt với vấn đề này, sau đó FORCE có thể không được với bạn.
Đặt vấn đề:
Tôi có XML này, có hai nút với nhiều mục trong đó các mục giữa hai nút này có một sự tương ứng 1-1. Trong ví dụ dưới đây, mỗi mục trong <array nút name="PLAYURL" /> liên quan (tương ứng với vị trí) đến một mục trong <array nút name="SITENAME"
<?xml version="1.0" encoding="utf-8"?>
<myplaylists>
<playlist>
<title>Best of Rest </title>
<array name="SITENAME">
<str>www.musicindiaonline.com</str>
<str>www.dhingana.com</str>
<str>www.raaga.com</str>
<str>www.smashits.com</str>
<str>www.desimusic.com</str>
<str>www.musicplug.in</str>
</array>
<array name="PLAYURL">
<str>http://www.musicindiaonline.com/123/</str>
<str>http://www.dhingana.com/play/123</str>
<str>http://www.raaga.com/123</str>
<str>http://ww.smashits.com/123</str>
<str>http://www.desimusic.com/123</str>
<str>http://www.musicplug.in/123</str>
</array>
</playlist>
</myplaylists>
Bây giờ, tôi có một vòng lặp, i vòng lặp thông qua <array name="SITENAME">, và tôi muốn để có được những mặt hàng liên quan (tại vị trí tương ứng) <array name="PLAYURL">,
Những gì bạn normaly sẽ cố gắng làm là ...
<xsl:for-each select="myplaylists/playlist/array[@name='SITENAME']/str">
play from : <a href="{../../array[@name='PLAY']/str[position()]}"/> <xsl:value-of select="." /></a>
</xsl:for-each>
SORRY! NÀY wont làm việc ... Ah! Surpised ...
Bây giờ bạn có thể muốn thử một cái gì đó như thế này ...
<xsl:for-each select="myplaylists/playlist/array[@name='SITENAME']/str">
<xsl:variable name="pos"> <xsl:value-of select="position()"/></xsl:variable>
play from : <a href="{../../array[@name='PLAY']/str[$pos]}"/> <xsl:value-of select="." /></a>
</xsl:for-each>
Một lần nữa điều này wont làm việc ... Bây giờ bạn gãi đầu, cố gắng để liên lạc với tất cả mọi người những người bạn biết một số XSL và có thể là bất kỳ sự giúp đỡ ... bạn cố gắng tất cả các tùy chọn khác ... và vẫn còn nó sẽ không làm việc ... Vâng! Thats những gì đã xảy ra với tôi ít nhất ...
Không nên tuyệt vọng! Hãy thử này
<xsl:for-each select="myplaylists/playlist/array[@name='SITENAME']/str">
<xsl:variable name="pos-int" select="position()" />
play from : <a href="{../../array[@name='PLAY']/str[$ <xsl:for-each select="myplaylists/playlist/array[@name='SITENAME']/str">
<xsl:variable name="pos-int" select="position()" />
play from : <a href="{../../array[@name='PLAY']/str[$ pos-int ]}"/> <xsl:value-of select="." /></a>
</xsl:for-each>
]}"/> <xsl:value-of select="." /></a>
</xsl:for-each>
Hỏi tôi tại sao nó hoạt. Nguyên nhân tôi không có một lý do phải ... nếu bạn làm! Xin vui lòng thả một bình luận. Nó có thể là khá hữu ích. Ngoài ra! nếu bạn có có TITLE tốt hơn cho bài viết này, thả cho tôi một dòng 