-5

您好我最近开始在 ASP.NET (VB) 中使用 XML。我的查询如下。

1)如果后面的代码可以实现同样的事情,我为什么要使用xslt?2)你能推荐一个简单的xslt教程链接,像我这样的新手可以理解吗?3)我有一个看起来像这样的 xml 文件

 <video>
      <name>name</name>
      <source>source</source>
      <category>category</category>
      <date>date</date>
      <description>description</description>
      <image>image</image>
      <tags>tags</tags>   
 </video>

我想以以下格式显示此文件

<ItemTemplate >
                <asp:Label ID="nameLabel" runat="server" Text='<%# Eval("name") %>' />
                <br />
                <asp:Image ID="ImgsLabel" runat="server" ImageUrl='<%# Eval("image") %>' />
                <br />
                Length:
                <asp:Label ID="lengthLabel" runat="server" Text='<%# Eval("length") %>' />
                <br />
                Dateloaded:
                <asp:Label ID="DateloadedLabel" runat="server" Text='<%# Eval("date") %>' />
                <br />
                <asp:Label ID="DescriptionLabel" runat="server" Text='<%# Eval("description") %>' Visible="False" />
                <asp:Label ID="sourceLabel" runat="server" Text='<%# Eval("source") %>' Visible="False" />
                <br />
                <asp:LinkButton id="SelectButton" Text="Select" CommandName="Select" runat="server" 
            />                   
            </ItemTemplate>

正如你所理解的,这可以很容易地使用后面的代码来实现,但是为了学习,有人一步一步地指导我如何在 asp.net 页面中使用 xslt 来实现这一点?

4

1 回答 1

0

我开始搜索 xslt 示例并登陆此页面。 请记住,这是我尝试 xml 和 xslt 的第一天。我通常在我的应用程序中使用 sql 数据源。

所以我有一个xml文件,基本上看起来像这样

   <?xml version="1.0" encoding="utf-8" ?>
   <!DOCTYPE video [
   <!ELEMENT video (name,embedsource,category,date,description,image,tags)>
   <!ELEMENT name (#PCDATA)>
   <!ELEMENT embedsource (#PCDATA)>
   <!ELEMENT category (#PCDATA)>
   <!ELEMENT date (#PCDATA)>
   <!ELEMENT description (#PCDATA)>
   <!ELEMENT image (#PCDATA)>
   <!ELEMENT tags (#PCDATA)>
  ]> <!-- This part is the Document Type Definition -->
  <video>
  <name>somename</name>
  <embedsource>some source</embedsource>
  <category>some category</category>
  <date>16/03/2013</date>
  <description>some description</description>
  <image>some image link</image>
  <tags>sometag1,,sometag2,,sometag3,,sometag4</tags>   
  </video> <!-- This part contains the actual data -->

现在我们有了我们的数据,但我们需要某种方式来显示/将此数据提供给控件(这可以是 gridview 或 datalist 或您喜欢的任何东西)应用程序。我当然可以使用字符串函数或其他代码来实现这一点,但我们将使用转换(您可以在w3school链接获得有关转换的更多信息。 )

    <?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="xml" indent="yes"/>

     <xsl:template match="/">
       <video>
        <xsl:apply-templates select="//video"/>
       </video>
       </xsl:template>
       <xsl:template match ="//video">
       <video>
       <xsl:attribute name="name">
       <xsl:value-of select="name"/>
       </xsl:attribute>
       <xsl:attribute name="description">
       <xsl:value-of select="description"/>
       </xsl:attribute>
       <xsl:attribute name="category">
       <xsl:value-of select="category"/>
       </xsl:attribute>
       <xsl:attribute name="date">
       <xsl:value-of select="date"/>
       </xsl:attribute>
       <xsl:attribute name="embedsource">
       <xsl:value-of select="embedsource"/>
       </xsl:attribute>
       <xsl:attribute name="tags">
       <xsl:value-of select="tags"/>
       </xsl:attribute>
       </video>
       </xsl:template>
       </xsl:stylesheet> <!-- Notice that I am using Attribute in my xslt but in my xml
       file data is in Element form that is because DATASETS can only recognise 
       Attributes. Attributes and Elements are interchangeable in an xml file
       and it is entirely upto you. I can be wrong here please correct me if it is the
       case.  --> 

              

最后一步是配置 xml 数据源。文件路径是 xml 文件的路径,转换路径是 xslt 文件的路径。将数据列表添加到您的应用程序中,您内心的疯狂科学家就会变得 muhahahahahhahaaaa。

使用 xslt 的利弊仍然是开放的,我将很快结束这部分。

于 2013-03-16T13:19:34.520 回答