首页 > 解决方案 > XML-XSL 验证询问

问题描述

开始 xml 10~15 天

而xml-xslt?xml-xsl?学习时,我正在复印一本书,但无法验证检查。

在 XML 文件中,第 3 行第 11 列的验证错误。

这是 XML

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="booklist.xsl"?>
<Booklist>
  <Book isbn="20030101">
    <Bookname>XML </Bookname>
    <Author>Pack Mi Young</Author>
    <Publisher>Hanbit</Publisher>
    <Publish_Date>
      <Y>2015</Y>
      <M>10</M>
      <D>15</D>
    </Publish_Date>
    <Page>560</Page>
    <Price>18000</Price>
  </Book>

  <Book isbn="20030102">
    <Bookname>JAVA </Bookname>
    <Author>Cha Sang Min</Author>
    <Publisher>Dankook</Publisher>
    <Publish_Date>
      <Y>2015</Y>
      <M>11</M>
      <D>20</D>
    </Publish_Date>
    <Page>750</Page>
    <Price>28000</Price>
  </Book>
  </Booklist>

在 XSL 文件中,第 2 行第 84 列的验证错误。

这是 XSL

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:template match="/Booklist/Book">
    <h3>Book match template</h3>
    <xsl:apply-templates select="Author:"/>
  </xsl:template>

 <xsl:template match="Author">
    <h3>Author name :</h3>
    <font color='blue'><xsl:value-of select="."/></font>
  </xsl:template>
</xsl:stylesheet>

我不知道为什么它没有被验证.. TT

作为参考,我使用 XML 复制编辑器

标签: xmlxslt

解决方案


XSLT 文件中的错误就行了

<xsl:apply-templates select="Author:"/>

:使您的 XPath 表达式无效。所以使用

<xsl:apply-templates select="Author"/>

反而。

此外,如果您想要一个有效的 HTML 文件,您必须对 XSLT 文件进行两项更改:

  1. 添加一个

    <xsl:output method="html" indent="yes" />
    

    作为您的顶级元素xsl:stylesheet。和...

  2. 添加与根元素匹配的通用 HTML 模板/

    <xsl:template match="/">
      <html>
        <body>
          <xsl:apply-templates select="node()|@*" />
        </body>
      </html>
    </xsl:template>
    

推荐阅读