-1

我有一个简单的 XML 文件:

<?xml version="1.0" encoding="UTF-8"?>
<Document>
    <Page x1="71" y1="120" x2="527" y2="765" type="page" chunkCount="1" pageNumber="1" wordCount="1">...</Page>
        <Chunk x1="206" y1="120" x2="388" y2="144" type="unclassified">
            <Word x1="206" y1="120" x2="214" y2="144" font="Times-Roman" style="font-size:22pt">WORD</Word>
        </Chunk>       
</Document>

当试图查看它时,我的浏览器告诉我我缺少一个样式表。由于我以前没有使用 XML 的经验,我的问题是:一个简单的 XSLT(据我所知?)看起来如何,这将使我能够在文件中坐标给定的位置查看 XML 文件的每个元素。帮助很大。

4

2 回答 2

2

您上面的 XML 有错误,您关闭Page两次,并且ChunkChuck错误地关闭

在 xml 文件上指定 xslt(样式表)是可选的,浏览器只是告诉他为什么显示原始 xml,没关系。您可以在服务器端应用 xsl 样式并决定应用哪个表,无需在 xml 文件中引用它。您也可以在客户端进行 xslt 翻译,这将更加棘手,因为浏览器不同的实现来实现这一点。

但是,如果您指定样式表,所有主要浏览器都将在客户端进行转换(旧浏览器不会),但即使是 IE6 也会

指向在 xml 文件中指定的样式表的链接如下所示:

<?xml-stylesheet type="text/xsl" href="so.xslt"?>

样式表可能如下所示:

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

<xsl:output omit-xml-declaration="yes" method="html"/>
<xsl:strip-space elements="*"/>

<xsl:template match="Document">
    <html>
     <head><title>Test</title></head>
        <xsl:apply-templates/>
    </html>
</xsl:template>

<xsl:template match="Page">
    <body>
        <xsl:apply-templates/><hr/>
        Page:<xsl:value-of select="@pageNumber"/>
    </body>
</xsl:template>

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

<xsl:template match="*">
<xsl:apply-templates/>
</xsl:template>

</xsl:stylesheet>

但正如您所见,您几乎可以用它构建任何东西。

于 2012-05-18T18:55:24.730 回答
-1

只需将 xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" 添加到您的 html 标签。这对我有用。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
    <title></title>
</head>
<body>

</body>
</html>
于 2015-08-05T21:32:40.873 回答