0

これは私の XML ファイルです。Nvarchar レコードの SQL データソースを文字列として使用して、SQL データテーブルからフェッチしました。

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="Artist.xsl"?>
<artists>
<artist>
<name>KATY PERRY</name>
<id>1</id></artist>
<artist>
<name>SNOOP DOGG</name>
<id>2</id>
</artist>
</artists> 

XSL スタイル シートは aspx ページと同じフォルダーにあり、次のようになります。

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match ="/">
<html>
  <body>
    <h2>Artist</h2>
    <table border="1">
      <tr bgcolor="#9acd32">
        <th>Title</th>
        <th>Artist</th>
      </tr>
      <xsl:for-each select="/artists/artist">
        <tr>
          <td>
            <xsl:value-of select="name"/>
          </td>
          <td>
            <xsl:value-of select="id"/>
          </td>
        </tr>
      </xsl:for-each>
    </table>
  </body>
</html>
</xsl:template>
</xsl:stylesheet>

私のaspxコントロールは、次のマークアップを持つリストビュー内のリテラルです

 <ItemTemplate>
        <td runat="server" style="">
            <asp:Literal ID="CoverartLabel" runat="server" Text='<%# Eval("Coverart")  %>'></asp:Literal>
            <a href="View.aspx/Album/<%# Eval("Id") %>"><%# Eval("Name") %></a>
            <br />
            <div>
            <asp:Literal ID="ArtistsLabel" runat="server" Text='<%# Eval("Artists")%>' Mode="Encode"></asp:Literal>
            <br />
                </div>
            <asp:Literal ID="SongsLabel" runat="server" Text='<%# Eval("Songs") %>'></asp:Literal>
            <asp:Label ID="LikesLabel" runat="server" Text='<%# Eval("Likes") %>' />
            <br />Comments:
            <asp:Label ID="CommentsLabel" runat="server" Text='<%# Eval("Comments") %>' />
            <br /></td>
    </ItemTemplate>

ページを実行すると、次のような出力が得られます

ここに画像の説明を入力

xmlがhtmlとして表示されない理由を理解するのを手伝ってくれる人がいますか? 文字通りの Artistlabel モードを変更しようとしましたが、うまくいきませんでした。XSL ファイルとその場所をいじってみませんか?

4

3 に答える 3

0

データベースから xml を nvarchar タイプとして読み取っています。これにより、XML ではなく文字列と見なされます。文字列をxmlに変換すると、うまくいくはずです。

変数「xmlString」のデータベースからフェッチされた文字列としてxmlがあると仮定しましょう。xml ドキュメントに変換します。

      XmlDocument xdoc= new XmlDocument();
      xdoc.loadXml(xmlString);
于 2013-06-05T14:57:56.197 に答える