我们都知道html可以通过css来设置样式,那么xml可以设置样式吗?它是通过css来设置样式的吗?

xml主要是通过xsl来设置样式的,首先我们需要在xml引入样式表,也就是xsl文件。

<?xml-stylesheet type='text/xsl' href='/url/to/xsl-stylesheet.xsl'?>

例如上面这样,href对应xsl的路径,在xsl里面我们可以定义显示的xml结构和样式,其中样式通过css来控制。

css->html  xsl->xml ,在xsl中,我们不仅可以控制样式,还可以控制结构,我们可以对显示内容进行格式化。

<xsl:for-each select="sitemap:sitemapindex/sitemap:sitemap">
            <tr><xsl:if test="position() mod 2 != 1"><xsl:attribute  name="class">high</xsl:attribute></xsl:if>
                <td><xsl:value-of select="position()"/></td>
                <td><xsl:variable name="itemURL"><xsl:value-of select="sitemap:loc"/></xsl:variable>
                    <a href="{$itemURL}"><xsl:value-of select="sitemap:loc"/></a>
                </td>
                <td><xsl:value-of select="concat(substring(sitemap:lastmod,0,11),concat(' ', substring(sitemap:lastmod,12,5)))"/></td>
            </tr>
</xsl:for-each>

我们通过for-each 换循环xml中的节点,xsl:value-of 用来获取xml中节点属性 select可以用来做一些复杂的截取,拼接操作。

如果提示This XML file does not appear to have any style information associated with it. The document tree is shown below.

那就是没有引入xml-stylesheet