2016-10-11 8 views
0

未処理でした.SqlXml.dll "Xsl.LoadExceptionは型 『System.Xml.Xsl.XslLoadException』の未処理の例外がSystem.Dataで発生した私は、XSLTファイルをロードしようとしたとき、私は」このコンパイルエラーに</p> <p>を取得し、いくつかの理由

私はそれがxsltファイルで間違っていることを知っていますが、xsltファイルを調べると、どこにエラーがあるのか​​分かりません。

これは変換するコードと、私が使用したxsltです。

 XslCompiledTransform XmlTransformFile; 
     XmlTransformFile = new XslCompiledTransform(); 
     XmlTransformFile.Load(hotelXslFilename); // xsl file name, 
     XmlTransformFile.Transform(HotelItemsFilename, ReportFilename); // xml file, with new Html file 


<?xml version="1.0" encoding="utf-8"?> 
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
    xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result- prefixes="msxsl"> 

<xsl:output method="html" indent="yes"/> 
<xsl:template match="/"> 
<html> 
<head> 
<title>Hotels in the Key West Area</title> 
</head> 
<body> 
<h1>Hotels in the Key West Area</h1> 
<table> 
<tr> 
<th>Name</th> 
<th>Rating</th> 
      <th>Average Price per Night</th> 
     </tr> 
     <xsl:for-each select ="ArrayOfHotelListItems/HotelListItems"> 
      <tr> 
      <td><xsl:apply-templates select="Name"/></td> 
      <td><xsl:apply-templates select="Rating"/></td> 
      <td> 
       <table> 
       <tr> 
        <xsl:for-each select="./Rooms"> 
        <td> 
        <div class="room"> 
        <xsl:apply-templates select="Room"/> 
        </td> 
        </div> 
        </xsl:for-each>    
       </tr> 
       </table> 
      </td>    
      </tr> 
     </xsl:for-each> 
     </table> 
    </body> 
    </html> 
</xsl:template> 

<xsl:template match="Name"> 
    <xsl:value-of select="."/> 
</xsl:template> 

<xsl:template match="Rating"> 
<!--TODO: Obtain rating pics from Web and use case statement to apply to ratings--> 
<xsl:choose> 
<xsl:when test="Rating = 5"> 
    <img src="./5stars.png"> 
</xsl:when> 
<xsl:when test="Rating = 4.5"> 
    <img src="./45stars.png"> 
</xsl:when> 
<xsl:when test="Rating = 4"> 
    <img src="./4stars.png"> 
</xsl:when> 
<xsl:when test="Rating = 3.5"> 
    <img src="./35stars.png"> 
</xsl:when> 
<xsl:when test="Rating = 3"> 
    <img src="./3stars.png"> 
</xsl:when> 
<xsl:when test="Rating = 2.5"> 
    <img src="./25stars.png"> 
</xsl:when> 
<xsl:when test="Rating = 2"> 
    <img src="./2stars.png"> 
</xsl:when> 
<xsl:when test="Rating = 1.5"> 
    <img src="./15stars.png"> 
</xsl:when> 
<xsl:otherwise> 
    <xsl:value-of select="."/> 
</xsl:otherwise> 
</xsl:choose> 
</xsl:template> 
<xsl:template match="Room"> 
<xsl:value-of select="./RoomType"/> = $<xsl:value-of select="./Rate"/> 
</xsl:template> 


</xsl:stylesheet> 
+0

複数の構文エラーがあります。このツールを使用してみてください:http://xsltransform.net/bFWR5E1 –

+0

ありがとう、そのサイトは参考になりました。 – user6875449

答えて

0

XMLはHTMLではありません。imgタグは閉じられません。 divtdタグを間違った順序で閉じています。

XslLoadExceptionInnerExceptionを確認する必要があります。XmlExceptionには、XMLの問題の詳細が記載されています。

HTML出力メソッドを使用している場合、imgタグは完全に有効なHTMLですが、有効なXMLである必要があります。

+0

わたしはもう一度それを見て、それに気づいた。助けてくれてありがとう – user6875449

関連する問題