将CSS样式添加到<xsl:element name =“standard_element_name”>

时间:2017-07-25 00:20:05

标签: html css xml xslt

根据SO标准,我在谷歌和雅虎以及W3Schools和其他论坛上研究了这个问题几个小时才发布到这里。 到目前为止,我找到的所有答案都面向专门的XML语言和其他将要读取XML文件的应用程序。 我不是这样做的,我也没有编写任何其他类型的代码(例如C ++,Java,C#等;我也不想使用JavaScript)。

我正在创建的小型本地站点仅使用HTML,XML和XSL中的文件,以及一整套存储为.jpg和png的图像文件。没有别的。

我的小网站在启用了IIS的基于本地PC的Windows 10计算机上运行。该网站可以运行,其他计算机可以通过LAN在常用的Web浏览器(如FireFox和Chrome)中查看。

唯一的问题是我的编码。

我的项目是使用简单的HTML创建一个非常基本的静态站点,只使用XML和XSLT。

我有一个XSL文件,它定义了模板中的所有标准HTML标签[例如(p)(div)(table)(tr)(th)(td)等]我也有很多自定义标签,其中这就是我想使用XML的原因。)

我已经达到了我想要使用(xsl:element name =“”)的程度。例如,我想使用(xsl:element name =“p”)定义一个典型的HTML(p style =“color:yellow;”)。

以下是我已经拥有的一小部分xsl:

<xsl:element name="p">
    <xsl:value-of select="p" />
</xsl:element>

这样可以,并在输出中创建一个非常简单的(p)标记,并显示所有文本。但是,它没有造型。在浏览器输出中,它看起来像这样

<p>
     A paragraph of text in here.
</p>

解释了上面的内容,我的问题是(希望非常清楚),如何使用如上所示的(xsl:element name =“p”)来为它添加样式属性,以便我的HTML输出看起来像什么像这样:

<p style="background-color:yellow; font-size: 16pt;">
   A paragraph of text in here, which is now black on a yellow background and a 16 point font.
</p>

1 个答案:

答案 0 :(得分:0)

我已经回答了我自己的问题,并且已经将我的完整的,实际的XSLT和一些我的XML文件包含在其他可能正在努力解决这个问题的文件中。简短的回答是(xsl:element name =“style”),它位于(xsl:element name =“div”)的正下方。

我已经包含了完整的代码,它在左侧的输出中创建了一个(div),它保持在一个固定的位置(意味着它不会滚动)。这是一个空间,用于指向用作菜单的其他章节的链接列表。以(xsl:element name =“div”)开头并以结束标记(/ xsl:element)结尾的短代码创建该区域,(for-each)块读取所有(list-text)和(url)标记[(side_menu_div)标记的子项,然后在侧面的(div)区域中创建链接列表。

            <?xml version="1.0" encoding="UTF-8"?>
        <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">


        <xsl:template match="ROOT">

            <html>
                <head>
                    <xsl:element name="title">
                        <xsl:value-of select="title" />
                    </xsl:element>
                </head>

                <body style="background-color:#fffc99;">
                        <xsl:element name="div">
                            <xsl:attribute name="style">width: 10%; height: 100%; position: fixed; padding-right: 1em; background: white</xsl:attribute>
                            <xsl:for-each select="/ROOT/side_menu_div/link-text">
                                <xsl:variable name="index" select="position()" />
                                <a href="{/ROOT/side_menu_div/url[$index]}">
                                    <xsl:value-of select="." />
                                </a>
                                <br/>
                            </xsl:for-each>
                        </xsl:element>  
                </body>

            </html>

        </xsl:template>
</xsl:stylesheet>

实际的XML

    <?xml version="1.0" encoding="UTF-8"?>
    <?xml-stylesheet type="text/xsl" href="/style-sheets/master.xsl"?>

    <ROOT>

    <title>Player's Core Rulebook</title>



    <side_menu_div>
        <link-text>Home Menu</link-text>
            <url>/methasia_index.html</url>
            <br></br>
        <link-text>Preamble</link-text>
           <url>/rulebooks/_players_core_rulebook/00-Preamble/Preamble.xml</url>
        <link-text>Chapter 1</link-text>
           <url>/rulebooks/_players_core_rulebook/01-Chapter-01/chapter_1.xml</url>
        <link-text>Chapter 2</link-text> 
           <url>/rulebooks/_players_core_rulebook/02-Chapter-02/chapter_2.xml</url>
        <link-text>Chapter 3</link-text> 
           <url>/rulebooks/_players_core_rulebook/03-Chapter-03/chapter_3.xml</url>
        <link-text>Chapter 4</link-text> 
           <url>/rulebooks/_players_core_rulebook/04-Chapter-04/chapter_4.xml</url>
        <link-text>Chapter 5</link-text> 
           <url>/rulebooks/_players_core_rulebook/05-Chapter-05/chapter_5.xml</url>
        <link-text>Chapter 6</link-text> 
           <url>/rulebooks/_players_core_rulebook/06-Chapter-06/chapter_6.xml</url>
        <link-text>Chapter 7</link-text> 
           <url>/rulebooks/_players_core_rulebook/07-Chapter-07/chapter_7.xml</url>
        <link-text>Chapter 8</link-text>
           <url>/rulebooks/_players_core_rulebook/08-Chapter-08/chapter_8.xml</url>
        <link-text>Chapter 9</link-text> 
           <url>/rulebooks/_players_core_rulebook/09-Chapter-09/chapter_9.xml</url>
        <link-text>Chapter 10</link-text> 
           <url>/rulebooks/_players_core_rulebook/10-Chapter-10/chapter_10.xml</url>
        <link-text>Appendix</link-text> 
           <url>/rulebooks/_players_core_rulebook/11-Appendix/Players_Core_Rulebook_Appendix.xml</url> 
    </side_menu_div>