XML样式表:此XML文件似乎没有任何与之关联的样式信息

XML样式表:此XML文件似乎没有任何与之关联的样式信息,xml,xslt,Xml,Xslt,我有一个简单的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="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文件的每个元素。非常感谢您的帮助。

您上面的XML有错误,您关闭了页面两次,并且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>

样式表可以如下所示:

<?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>

试验

第页:
但正如您所看到的,您几乎可以用它构建任何东西。

只需添加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>


这似乎很有可能,但首先要确定与此XML对应的HTML的外观。(我假设你有HTML方面的经验,因为没有HTML或XML和XSLT,我担心你无法完成这项任务。)@Borodin我的XML由从PDF中提取的元素组成,如果我能以使用XML中坐标定位的矩形形式显示所有元素,我会很高兴。我对HTML不是特别有经验,但我可以想象编写一个python脚本,将元素从XML转换为HTML。但这可能会是一项乏味的任务:(提取时使用了什么工具?(好奇)LA PDFText似乎工作得很好。你真的在尝试用HTML呈现PDF文档吗?xslt作为xml不会像你的问题中那样承认这种错误,它们有非常严格的规则,如果你错过了它,什么都不会起作用。有在线和离线的检查程序和验证程序。如果你想讨论细节,你必须问更多的问题cific和show more code。我认为这并不能回答这个问题——我认为他希望通过使用样式表转换(XSLT)从XML生成HTML文档。请注意,他/她的代码片段是XML文档,而不是您的答案中的HTML文档。海报中的主要问题是“XSLT转换[文件]看起来像什么?”。我不认为将xmlns属性添加到原始XML文档中的任何内容都会删除该消息(尽管使用HTML文档会),而且它也无法完成XSL转换。别担心。欢迎来到SO:D我以前肯定做过同样的事情。再加一句话——如果有人投了反对票,你通常会失去声誉……如果你同意答案不太符合主题,你可以删除答案,或者改进答案,以避免这种情况。像我这样的好的反对者会这样做始终在评论中留下反对票,如果答案得到改进,将删除反对票。这有助于保持答案的相关性和数量的减少,并改善SO体验。