我有一个简单的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文件的每个元素。帮助大大减少。
答案 0 :(得分:2)
上面的XML有错误,你关闭页面两次,而 Chuck 错误地关闭 Chunk
在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>
但是正如你所看到的,你可以用它来构建几乎任何东西。
答案 1 :(得分:-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>