Vì vậy, tôi đã cố gắng để nghiên cứu này và tôi gần như kết thúc trí thông minh của tôi. Tôi đã tìm cách nhúng XSL vào XML trên dpawson.co.uk, nhưng tôi không thể tìm ra những gì tôi đang làm sai. Tôi đã lùng sục internet cố gắng tìm giải pháp và giải thích, nhưng không ai có câu trả lời.Nhúng XSL vào XML để hiển thị trong Trình duyệt web: Tôi đang làm gì sai?
Tôi đang cố gắng tạo một tệp độc lập với máy chủ để tôi có thể gửi một tệp tới đồng nghiệp của mình với hy vọng họ có thể xem tệp bằng cách mở tệp đó trong trình duyệt web của họ.
Dưới đây là mã của tôi cho đến nay:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!--Start XSL-->
<?xml-stylesheet type="text/xml" href="#stylesheet"?>
<!DOCTYPE doc [
<!ATTLIST xsl:stylesheet
id ID #REQUIRED>
]>
<doc>
<xsl:stylesheet id="stylesheet"
version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >
<xsl:template match="xsl:stylesheet" />
<!--Variables-->
<xsl:variable name="a" select="list/movie/seen[@value ='Yes']" />
<xsl:variable name="b" select="list/movie/seen" />
<xsl:variable name="c" select="sum(list/movie/rating/@value)" />
<xsl:variable name="d" select="$c div count($a)" />
<xsl:variable name="e" select="count($a) div count($b)" />
<xsl:variable name="f" select="list/movie/seen[@value ='No']" />
<xsl:variable name="g" select="list/movie/seen[@value ='Prior']" />
<xsl:variable name="h" select="count($f) div count($b)" />
<xsl:variable name="j" select="count($g) div count($b)" />
<xsl:variable name="minutes_total" select="sum(list/movie/length[@value ='y'])" />
<xsl:variable name="minutes" select="$minutes_total mod 60" />
<xsl:variable name="hours" select="floor($minutes_total div 60) mod 24" />
<xsl:variable name="hours2" select="floor($minutes_total div 60)" />
<xsl:variable name="days" select="floor($hours2 div 24)" />
<xsl:decimal-format name="percent" />
<xsl:decimal-format name="average" decimal-separator="." />
<!--End Variables-->
<xsl:template match="/doc">
<html>
<head>
<style>
h2{
font-family: Courier, Courier New, monospace;
font-size: 32px;
text-decoration: underline;
}
body{
font-family: Courier New, monospace;
}
p{
font-size: 16px;
}
table{
font-size: 14px;
}
.title{
text-align:left;
}
.release{
text-align:center;
}
.seen{
text-align:center;
}
.rating{
text-align:right;
}
.length{
text-align:center;
}
</style>
</head>
<body>
<h2>My Movie List</h2>
<p>Movies seen so far: <xsl:value-of select="count($a)" />/<xsl:value-of select="count($b)" /> = <xsl:value-of select="format-number($e, '#%', 'percent')" /><br />
Movies yet to see: <xsl:value-of select="count($f)" />/<xsl:value-of select="count($b)" /> = <xsl:value-of select="format-number($h, '#%', 'percent')" /><br />
Movies seen prior to making list: <xsl:value-of select="count($g)" />/<xsl:value-of select="count($b)" /> = <xsl:value-of select="format-number($j, '#%', 'percent')" /><br />
Total time watched: <xsl:value-of select="format-number($days, '#0')" /> days, <xsl:value-of select="format-number($hours, '#0')" /> hours, <xsl:value-of select="format-number($minutes, '#0')" /> minutes<br />
Average rating: <xsl:value-of select="format-number($d, '#.000', 'average')" /> stars out of 5</p>
<br />
<table border="1">
<tr>
<th>#</th>
<th>Title</th>
<th>Release Date</th>
<th>Length</th>
<th>Seen</th>
<th>Rating</th>
</tr>
<xsl:for-each select="list/movie">
<xsl:choose>
<xsl:when test='seen = "Yes"'>
<tr style="background-color:#666; color:#fff">
<td> <xsl:number /></td>
<td class="title"><xsl:value-of select="title"/></td>
<td class="release"><xsl:value-of select="release"/></td>
<td class="length"><xsl:value-of select="length" /> minutes</td>
<td class="seen"><xsl:value-of select="seen"/></td>
<td class="rating"><xsl:value-of select="rating"/></td>
</tr>
</xsl:when>
<xsl:when test='seen = "Seen prior to making list"'>
<tr style="background-color:#999; color:#000">
<td> <xsl:number /></td>
<td class="title"><xsl:value-of select="title"/></td>
<td class="release"><xsl:value-of select="release"/></td>
<td class="length"><xsl:value-of select="length"/> minutes</td>
<td class="seen"><xsl:value-of select="seen"/></td>
<td class="rating"><xsl:value-of select="rating"/></td>
</tr>
</xsl:when>
<xsl:otherwise>
<tr style="background-color:#fff;">
<td> <xsl:number /></td>
<td class="title"><xsl:value-of select="title"/></td>
<td class="release"><xsl:value-of select="release"/></td>
<td class="length"><xsl:value-of select="length" /> minutes</td>
<td class="seen"><xsl:value-of select="seen"/></td>
<td class="rating"><xsl:value-of select="rating"/></td>
</tr>
</xsl:otherwise>
</xsl:choose>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
<!--Start XML-->
<list>
<movie>
<title>2001: A Space Odyssey</title>
<release>1968</release>
<seen value="No">No</seen>
<rating>N/A</rating>
<length value="n">141</length>
</movie>
<movie>
<title>28 Days Later</title>
<release>2002</release>
<seen value="No">No</seen>
<rating>N/A</rating>
<length value="n">113</length>
</movie>
<movie>
<title>28 Weeks Later</title>
<release>2007</release>
<seen value="No">No</seen>
<rating>N/A</rating>
<length value="n">100</length>
</movie>
<movie>
<title>A Clockwork Orange</title>
<release>1971</release>
<seen value="Yes">Yes</seen>
<rating value="2">☆☆☆★★</rating>
<length value="y">136</length>
</movie>
<!--Rest of XML-->
</list>
</doc>
Đó là một danh sách các phim có chứa bao nhiêu tôi đã nhìn thấy cho đến nay, có bao nhiêu tôi chưa thấy, có bao nhiêu tôi đã nhìn thấy trước khi tôi tạo danh sách, tổng thời gian tôi đã đưa vào xem phim và xếp hạng trung bình cho mỗi bộ phim được xem.
Vấn đề là tất cả các biến được hiển thị với giá trị bằng không, điều này gây ra chia cho số không cho giá trị NaN trên một số đầu ra.
Bất cứ điều gì mà bất kỳ ai cũng có thể cung cấp đều sẽ được đánh giá cao!
Tôi không thực sự hiểu những gì bạn đang cố gắng làm ở đây nhưng tôi không nghĩ rằng đây là một bản định kiểu. Thẻ của bạn được nhúng trong một thẻ rất lạ –
Kevan
Thật không may, XML của tôi quá lớn để vừa hoàn toàn trong phần nội dung của câu hỏi. Những gì tôi đang cố gắng làm là biến các biến của tôi thành công việc. Khi tôi có các tệp .xml và .xsl riêng biệt, nó hoạt động rất đẹp. Nhưng khi tôi nhúng, xml xuất hiện, nhưng các biến của tôi không hoạt động. Tôi nhận được rất nhiều 0 và NaN. – ishmael624
Bạn đang làm gì với tài liệu này. Bạn nói "xml xuất hiện". Ở đâu? Bạn đang chạy phần mềm gì và làm cách nào? –